如何在Lua中使字符串变量

时间:2018-07-23 21:23:23

标签: lua

我在Lua中写了一个脚本,这些脚本总是在表中显示这样的字符串

order = { apple="0@1@2"}
print(order["apple"])

因为它经常显示,我想创建一个覆盖所有内容的函数

function getnumber(a,apple)
a=tonumber(order["apple"])
print(a)
end

但是我发现“ apple”不是变量,所以我尝试像order [tostring(apple)]一样进行字符串化,但是仍然不起作用(尝试调用全局“字符串”(表值) 堆栈追溯)有人可以教我如何解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

order = { apple="0@1@2"}

function getnumber(key)
    return (order[key])
end

print(getnumber("apple"))

这将返回:

0@1@2

或将其分配给变量以供以后使用:

value = getnumber("apple")

答案 1 :(得分:-1)

假设您的函数参数正确,则此代码将与您的第一个代码段相同:

function getnumber(a, apple)
  _G.a = {[apple] = "0@1@2"}
  print(a[apple])
end

getnumber('order', 'apple')

但是,这看起来很奇怪,我不禁想知道这是否是您真正想要的。也许您可以发布现有代码的更多示例,以便我们可以看到它们的共同点,这些因素应该被分解到函数中。