我正在尝试将具有多个数字的字符串传递给单个int,如下所示:
x="5+5" --amount of numbers is not constant
y=tonumber(x)
print(y)
其结果是nil
应为10
(int)。我可以解决这个问题的唯一方法是先搜索所有"+"
与"-"
用string.find()
然后切断所有必需的部件,并从那里只tonumber()
。对于这样一个简单的问题,编写至少一百行代码是很愚蠢的。
tonumber
只能用于实数字符串,不能用于算术表达式。
您可以加载字符串并运行它:
x = "5 + 5"
func = assert(load("return " .. x))
y = func()
print(y)
在Lua 5.1中,使用loadstring
代替load
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句