我正在尝试将一个包含多个数字的字符串添加到单个int中 像这样:
x="5+5" --amount of numbers is not constant
y=tonumber(x)
print(y)
结果是nil
,而它应该是10
(int)。我能解决这个问题的唯一方法是首先用"+"
搜索所有"-"
和string.find()
,然后将其剪切到所有必要的部分,然后从那里tonumber()
。为这样一个简单的问题编写至少一百行代码感觉很愚蠢。
答案 0 :(得分:3)
tonumber
只能用于实数的字符串,而不能用于算术表达式。
您可以加载字符串并运行它:
x = "5 + 5"
func = assert(load("return " .. x))
y = func()
print(y)
在Lua 5.1中,使用loadstring
代替load
。