变量_在lua中有特殊含义吗?

时间:2015-12-26 22:51:07

标签: variables lua

我是lua / torch的新手。我注意到变量_被大量使用,特别是在迭代器中。例如:

for _, node in ipairs(protos.rnn.forwardnodes) do
    a, b = whatever(a,b)
end

这个'变量命名约定'(可以这么说)也用于其他情况,如:

local _,loss = optimizer(feval,params, optim_state)

_是否有任何特殊含义,或者它只是一个可变名称,在众多可能的名称中?

2 个答案:

答案 0 :(得分:15)

它通常用作一次性变量。它没有真正的"特殊含义,但用于表示指示值不重要。

  

该变量仅包含下划线" _"当你想忽略变量时,它通常用作占位符......

阅读更多here(在命名部分下)。

答案 1 :(得分:10)

_的使用通常用于返回您不希望从函数返回的值。这是有道理的,它看起来像空白。迭代时常用的原因是因为大多数迭代器返回键值对,而需要该值。

但是,_也可用于完全相反。如果放在变量后面,例如_G_VERSION,则表示重要不应更改。

最后,双下划线。我只使用过 metamethods ,例如__index__add,所以如果您正在制作函数或API或任何检查自定义元方法的内容,确保一致,并使用双下划线。

所以最后,它只是一个命名约定,完全是自以为是和可选的。