-- Анонимная функция
local add = function(a, b)
return a + b
end
-- Передача функции в качестве аргумента
local function apply(func, x)
return func(x)
end
print(apply(add, 3))
你能帮我解决它吗?
lua: main.lua:3: attempt to perform arithmetic on a nil value (local 'b')
stack traceback:
main.lua:3: in function <main.lua:2>
(...tail calls...)
main.lua:11: in main chunk
[C]: in ?
该函数
add (a, b)需要两个参数。函数内部apply (func, x)只传递一个。目前尚不完全清楚您到底想要实现什么目标。这里有两个工作选项。第一个使用可变参数函数:
第二个示例使用闭包: