我在这里和其他地方在网上搜索了一个答案,但是所有主题都涉及迭代表格,元表或者_,var1 = do_some_stuff()
的时间,而不是这里的情况。
这只是一个非现实的功能,但包含我的意思的例子:
function do_some_stuff(data)
_ = some_function(data)
some_other_code
_ = some_other_function(data)
end
这不会被视为仅仅输入:
function do_some_stuff(data)
some_function(data)
some_other_code
some_other_function(data)
end
我知道如果我创建一个这样的基本Lua程序,两个版本都运行相同:
function hello(state)
print("World")
end
function ugh(state)
_ = hello(state) -- and w/ hello(state) only
end
ugh(state)
我只是想知道是否有时间需要这个_ = some_function()
?
_ = do_some_stuff()
没有任何好处,而是使用do_some_stuff()
很好并且更容易接受。当以这种方式使用时,下划线没有任何好处。
感谢Etan Reisner和Mud的帮助和澄清。
在你写的例子中,_
毫无意义。通常,如果函数返回多个值,则使用_
,并且不需要返回所有内容。可以说,扔掉变量_
。
例如:
local lyr, needThis = {}
lyr.test = function()
local a, b, c;
--do stuff
return a, b, c
end
可以说,对于这样一个返回多个值的函数,我只需要第三个值来做其他事情。相关部分将是:
_, _, needThis = lyr.test()
needThis
的值将是函数c
中返回的lyr.test()
的值。