我是lua / torch的新手。我注意到变量_被大量使用,特别是在迭代器中。例如:
for _, node in ipairs(protos.rnn.forwardnodes) do
a, b = whatever(a,b)
end
这个'变量命名约定'(可以这么说)也用于其他情况,如:
local _,loss = optimizer(feval,params, optim_state)
_是否有任何特殊含义,或者它只是一个可变名称,在众多可能的名称中?
答案 0 :(得分:15)
它通常用作一次性变量。它没有真正的"特殊含义,但用于表示指示值不重要。
该变量仅包含下划线" _"当你想忽略变量时,它通常用作占位符......
阅读更多here(在命名部分下)。
答案 1 :(得分:10)
_的使用通常用于返回您不希望从函数返回的值。这是有道理的,它看起来像空白。迭代时常用的原因是因为大多数迭代器返回键值对,而只需要该值。
但是,_也可用于完全相反。如果放在变量后面,例如_G
或_VERSION
,则表示重要,不应更改。
最后,双下划线。我只使用过 metamethods ,例如__index
或__add
,所以如果您正在制作函数或API或任何检查自定义元方法的内容,确保一致,并使用双下划线。
所以最后,它只是一个命名约定,完全是自以为是和可选的。