Shu*_*Liu 3 lua arguments torch
对于 lua,根据本教程,可以通过名为 arg 的隐藏变量访问函数的三个点。
https://www.lua.org/pil/5.2.html
我写了一个非常简单的程序
require 'torch'
function triDot(...)
print('in triDot now')
print(arg)
for i,v in ipairs(arg) do
print('i is',i,'v is',v)
end
end
triDot('name1','name2')
Run Code Online (Sandbox Code Playgroud)
事实证明 arg 根本不包含 {'name1', 'name2'} 而是一堆系统参数。For 循环不会产生任何结果。
{ 0:“/home/jun/torch/install/lib/luarocks/rocks/trepl/scm-1/bin/th”-2:“-e”-5:“/home/jun/torch/install/bin /luajit" -3 : "package.path="/home/jun/.luarocks/share/lua/5.1/?.lua;/home/jun/.luarocks/share/lua/5.1/?/init.lua; /home/jun/torch/install/share/lua/5.1/?.lua;/home/jun/torch/install/share/lua/5.1/?/init.lua;"..package.path; package.cpath ="/home/jun/.luarocks/lib/lua/5.1/?.so;/home/jun/torch/install/lib/lua/5.1/?.so;"..package.cpath" -4 : " -e" -1 : "本地 k,l,_=pcall(require,"luarocks.loader") _=k 和 l.add_context("trepl","scm-1")" }
任何人都可以帮忙吗?
arg不适用于 Lua 5.1+ 中的函数参数(它可以在 5.1 中工作并打开一些兼容性选项;它仅适用于脚本参数)。您需要使用local arg = {...}将函数参数分配给表或使用select(i, ...)从列表select('#', ...)中获取第 i 个参数并获取参数数量。前者更简单,但后一个选项可以处理nil传递参数中的值,因此如果您期望值,请使用它nil。