【问题标题】:Parameter implicit "arg" in functions not work in Lua函数中的参数隐式“arg”在 Lua 中不起作用
【发布时间】:2014-09-04 20:16:28
【问题描述】:

我在函数中使用隐式参数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

谢谢。

【问题讨论】:

    标签: lua


    【解决方案1】:

    The first edition of PiL 谈论 Lua 5.0。 arg 的使用在 Lua 5.0 中可用,而自 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 中不起作用。

    【讨论】:

    • arg 仍然存在于主要的 Lua 5.1 实现中,以实现向后兼容。不过,它绝对不在 LuaJIT 中,也可能不在其他实现中。
    猜你喜欢
    • 1970-01-01
    • 2016-09-27
    • 2013-02-26
    • 1970-01-01
    • 1970-01-01
    • 2019-03-19
    • 1970-01-01
    • 1970-01-01
    • 2021-03-31
    相关资源
    最近更新 更多