Lua - 可以从表值调用函数及其返回值

标签 lua function-declaration

我正在就此事寻求帮助,因为我无法完全掌握是否可能,更不用说我是否做错了。

my = {
    Question = AskQuestion()
}

function AskQuestion()
    return "What do you want to know?"
end

我的目的是打印(my.Question)并让它返回“你想知道什么?”,到目前为止,我在尝试让它工作时遇到了头痛和错误。

此外,如果这个问题得到解决,我可以推测,与其自己弄清楚,我还不如另外问一下。将值传递给函数怎么样?

my = {
    Answer = MyAnswer(vAnswer)
}

function MyAnswer(vAnswer)
    if vAnswer == "42" then return "Life.." end
end

所以在这里我想做, print(my.Answer(42)) 并返回“Life..”

最佳答案

只需反转你的声明:

function AskQuestion()
    return "What do you want to know?"
end

my = {
     Question = AskQuestion()
}

由于 Lua 是解释性的,因此您必须先定义所有内容,然后才能使用。

设置变量时,您不需要传递 (vAnswer),因为它不是定义,它只是现有函数的用法,因此更改为:

function MyAnswer(vAnswer)
    if vAnswer == "42" then return "Life.." end
end

my = {
    Answer = MyAnswer
}

我在这里假设您使用的是不同的我的表,但您应该得到图片。

关于Lua - 可以从表值调用函数及其返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20598530/

相关文章:

lua - 将值存储在 lua 的 userdata 对象中

Lua metatable,如何转发未定义的函数?

c - 函数声明与原型(prototype)的替代 (K&R) C 语法

c++ - 在函数内部使用声明函数?

python - 带有*的Python函数作为参数:def blah(x,*,y)

c - 使用 tolua++ 绑定(bind)结构和 ctor/dtor

Javascript:在 JavaScript 中是否有等同于 lua 的 _G?

scala - Bugsense 返回错误 : "list index out of range"

javascript - 为什么函数表达式的位置在 Node js 中无关紧要?

c - 如何在 C 中返回静态分配的二维数组?