=34" B = "7777" 我想要一些像if exec_string(A)这样的函数应该返回 true 或 false。 目前我-6ren">
gpt4 book ai didi

ruby - 在 ruby​​ 中执行数学表达式字符串的最佳方法?

转载 作者:太空宇宙 更新时间:2023-11-03 17:21:57 24 4
gpt4 key购买 nike

我想像这个示例字符串一样执行字符串中的数学表达式:

  1. A = "23>=34"
  2. B = "77<90"
  3. C = "33>77"

我想要一些像if exec_string(A)这样的函数应该返回 true 或 false。

目前我使用的是这种方法:

    rest = --- # I am splitting the string in to three(L- as left number cmpr- as compare and R- as right number )
class_name.calc(rest[0],rest[1],rest[2])
def self.calc(L,cmpr,R)
case cmpr
when "<"
if L.to_i < R.to_i
return true
end
....
....
....
end
end

无法处理很多情况。有帮助吗?

最佳答案

您可以为此使用eval:

eval("23>=34")
#=> false
eval("23<=34")
#=> true

但请记住,eval 可能是邪恶的。特别是如果评估的字符串是由用户提供的。想象一下,如果用户输入删除文件的命令会发生什么……

关于ruby - 在 ruby​​ 中执行数学表达式字符串的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33542823/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com