function f(...)
return ...
end
我称之为:
f()
实施例
a = f()
print(a) -- echoes 'nil', same as print(nil)
但是
print(f()) -- echoes newline, same as print(), that is, no args
t = {f()} -- same as t = {}
那么,f()会返回什么?
更新:不知道函数可以返回' void',同时找到此http://lua-users.org/lists/lua-l/2011-09/msg00289.html。
答案 0 :(得分:5)
它返回你用它调用的所有参数。
f() -- has no parameter, returns nothing
如果您使用的值少于变量值,即
local a, b = 3
local c
然后,这将以b和c为零结束。
另一方面,这一切都会有所作为:
f(1) -- returns 1
f(1, 2, 3) -- returns 1, 2 and 3
local t = {f(1, 2, 3)} -- table with the values 1, 2 and 3
答案 1 :(得分:3)
关于类型的答案可能是此命令的输出:
print(type(f()))
在这种情况下,它会打印:
bad argument #1 to 'type' (value expected)
所以,一个值是预期的,但是没有价值。 =>它返回无(无效)。
因此,这是一种正常行为:t = {f()}
< => t = {}
关于作业,如果没有值,Lua会默认指定nil
值。
答案 2 :(得分:2)
我发现Lua函数可以返回'nothing',甚至不是nil。在这种情况下,f()
会返回nothing
。使用nothing
(没有赋值)会在另一个函数调用中产生零参数(如print(f())
或表构造函数({f()}
)。
print(a)
回显为nil,因为a
没有指定值,print(any_name)
也会回显nil。