【问题标题】:Dynamically assigned table variables?动态分配的表变量?
【发布时间】:2011-01-11 22:39:30
【问题描述】:

在 Lua 中编写一个函数,创建两个表。我希望将表分配给添加了 x 的值名称,以及添加了 y 的表。例如,如果 name 是 line,它将创建两个表 linex 和 liney,但我不知道该怎么做。以下显然不起作用(并且仅用于显示目的)但是我将如何去做呢?

function makelinep(x,y,minrand,maxrand,name,length)
  name..x = {}
  name..y = {}

稍后我希望在写入值后访问“linex”和“liney”。

【问题讨论】:

    标签: variables lua lua-table


    【解决方案1】:

    如果你想在全局命名空间中使用这些,你会使用

    _G[name..'x']={}
    _G[name..'y']={}
    

    对于一个模块,您可以使用 _M 代替 _G

    【讨论】:

    • 效果很好,但是我似乎无法将值插入表中,该怎么做呢? (在同一个函数中) table.insert(name.."x",count,x) 不起作用。谢谢:D
    • name.."x" 不是表格,而只是带有表格名称的字符串。如上例 _G[name..'x'] 是表,所以正确的语法是 table.insert(_G[name..'x'],count,x)
    • 啊,有道理!非常感谢:D
    • 现在(5.2,2011),_ENV 可能比_G_M 更合适。
    猜你喜欢
    • 1970-01-01
    • 2012-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-29
    • 2021-07-06
    相关资源
    最近更新 更多