3

我已经在这里和其他地方在线搜索了答案,但是所有主题都涉及迭代表、元表或时间,_,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()必要这样做?

4

2 回答 2

3

在你写的例子中,_是没有意义的。通常,_如果函数返回多个值,并且您不需要所有返回的内容,则使用它。可以说,一个一次性变量_是。

例如:

local lyr, needThis = {}
lyr.test = function()
    local a, b, c;
    --do stuff
    return a, b, c
end

可以说,对于这样一个返回多个值的函数,我只需要第三个值来做其他事情。相关部分是:

_, _, needThis = lyr.test()

的值needThis将是c函数中返回的值lyr.test()

于 2015-06-03T14:33:34.883 回答
2

没有任何好处_ = do_some_stuff(),而是使用do_some_stuff()很好并且更容易接受。以这种方式使用时,下划线没有任何好处。

感谢 Etan Reisner 和 Mud 的帮助和澄清。

于 2015-06-02T20:45:25.273 回答