You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何移除Ruby数组中的双引号并转为数值数组

安全将Ruby字符串数组转为整数数组的方法

不用eval的话,有几个安全且高效的方案:

  • 使用to_i方法:这是最简洁的方式,适合确定字符串都是纯数字的场景

    ["1", "2"].map(&:to_i)
    # 输出:[1, 2]
    

    to_i会自动将字符串转换为整数,即使字符串里有非数字前缀之外的内容(比如"123abc"会转成123),但如果你的输入都是合法数字字符串,完全够用,而且绝对安全,不会执行任何额外代码。

  • 使用Integer()构造方法:如果需要严格校验输入(比如遇到非合法整数字符串时抛出错误),用这个更合适

    ["1", "2"].map { |s| Integer(s) }
    # 输出:[1, 2]
    

    要是数组里有类似"1a"或者"abc"这样的字符串,Integer()会直接抛出ArgumentError,能帮你提前发现无效输入,同样不存在安全风险。

为什么不能用eval?因为eval会把传入的字符串当作Ruby代码执行,如果数组里的元素是恶意构造的(比如"system('rm -rf /')"),会直接执行危险操作,在处理用户输入或者不可信数据时绝对要避免。

内容的提问来源于stack exchange,提问作者VDN

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 05:35:24