函数中的参数隐式“arg”在Lua中不起作用

时间:2014-09-04 11:27:17

标签: lua

我在函数中使用隐式参数arg时遇到问题。

代码不起作用。文档http://www.lua.org/pil/5.2.html应该有效。

function listar_um (...)
  for i,v in ipairs(arg) do
    print("usando args " .. arg[i])  
  end
end
listar_um("Olá", 1, "Dois")

此代码适用于声明变量lista

function listar_um (...)
  lista = {...}

  for i,v in ipairs(lista) do
    print("não usando args " .. lista[i])  
  end
end
listar_um("Olá", 1, "Dois")

为什么第一个例子不起作用?

测试脚本:http://www.codeshare.io/IPwRJ 执行在线脚本:http://www.compileonline.com/execute_lua_online.php

感谢。

1 个答案:

答案 0 :(得分:4)

The first edition of PiL谈论Lua 5.0。在Lua 5.0中可以使用arg,而自Lua 5.1以来它已被删除

您可以在Lua 5.0 reference manual中找到它,但不能在Lua 5.1 reference manual中找到它。

版本the online interpreter使用的是Lua 5.2,您可以通过print(_VERSION)找到。


编辑:经过一些测试后,似乎arg在Lua 5.1中仍然可用,但在Lua 5.2中无效。