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