将值作为Lua中的参数传递

Srd*_* M. 0 lua

A = {}

function A:text()
    return 100
end

print(A["text"]()) -- prints "100"

----------------------------------

A = {}

function A:text(value)
    return value
end

print(A["text"](100)) -- prints "nil"
Run Code Online (Sandbox Code Playgroud)

有没有办法可以将值作为参数传递并返回相同的值?我需要遍历5个函数...

Nic*_*las 5

如果你正确宣布你的功能,你可以.

function A:text(value)
Run Code Online (Sandbox Code Playgroud)

这创建了一个带有两个参数的函数.这:是对此负责的.第一个参数是一个隐式声明的参数self.第二是value.此函数旨在被称为A:text(100)或与A["text"](A, 100).

这些是类成员类函数.

你应该改为创建这样的函数:

function A.text(value)
Run Code Online (Sandbox Code Playgroud)

这将创建一个带有一个参数的函数.

  • @ S.Jovan:首先,你没有声明`self`,所以代码(虽然Lua合法)没有意义.其次,你的功能不是一种方法; 它不使用`self`,所以你不应该用`:`声明它. (2认同)