标签: lua-table

Lua table.toString(tableName)和table.fromString(stringTable)函数?

我想将2d lua表转换为字符串,然后将其转换为字符串后,使用新创建的字符串将其转换回表.好像这个过程被称为序列化,并在下面的url中讨论,但我很难理解代码,并希望有人在这里有一个简单的table.toString和table.fromString函数
http:// lua- users.org/wiki/TableSerialization

lua serialization lua-table

4
推荐指数
4
解决办法
3万
查看次数

lua 5.2更改表中元素的顺序

在lua 5.1中的代码:

sums = { 
    ["LD1"] = { }, 
    ["LD2"] = { }, 
    ["LD3"] = { }, 
    ["LD4"] = { }, 
    ["I1"] = { }, 
    ["I2"] = { }, 
    ["I3"] = { }
}

for fld = 1, 22, 1 do
    table.insert( sums["LD1"] , 0 );
    table.insert( sums["LD2"] , 0 );
    table.insert( sums["LD3"] , 0 );
    table.insert( sums["LD4"] , 0 );
    table.insert( sums["I1"] , 0 );
    table.insert( sums["I2"] , 0 );
    table.insert( sums["I3"] , 0 );
end

for i,O in …
Run Code Online (Sandbox Code Playgroud)

lua dictionary lua-table

4
推荐指数
3
解决办法
1237
查看次数

Lua 访问表的键和值

我想在关卡编辑器中读取 Lua 文件,这样我就可以以可视化格式显示其数据供用户编辑。

如果我有一个像这样的 Lua 表:

properties = {
  Speed = 10,
  TurnSpeed = 5
}
Run Code Online (Sandbox Code Playgroud)

Speed显然是关键和10价值。我知道如果我知道像这样的键,我可以访问该值(前提是该表已经在堆栈上):

lua_pushstring(L, "Speed");
lua_gettable(L, idx); 
int Speed = lua_tointeger(L, -1);
lua_pop(L, 1); 
Run Code Online (Sandbox Code Playgroud)

我想要做的是在 C++ 中访问键的名称和相应的值。这可以做到吗?如果是这样我该怎么办?

c++ lua lua-table

4
推荐指数
1
解决办法
6213
查看次数

Lua 表 为表中的键分配值

嗯,赋值之间有什么区别:

Lesson["Maths"] = {grade = 10, class = 3}
Run Code Online (Sandbox Code Playgroud)

Lesson["Maths"] = {["grade"] = 10, ["class"] = 3}
Run Code Online (Sandbox Code Playgroud)

如果我想为表中的键分配值,我应该选择哪一个?或者说哪一种用的比较多?多谢

lua lua-table

4
推荐指数
1
解决办法
1248
查看次数

表的 __gc 元方法的 Lua 5.1 解决方法

我目前面临的问题是你不能__gc在 Lua 5.1 中使用表的方法,因为它们是在 Lua 5.2 中实现的。但是,我想在收集 lua 表后释放分配的本机资源。是否可以制定一个解决方法,__gc为 Lua 5.1 提供 Lua 5.2 中元方法的功能?

lua garbage-collection lua-table lua-5.1

4
推荐指数
1
解决办法
3940
查看次数

Lua成对与其编写的顺序相同

有没有办法按照下面的表格以与写入的顺序相同的方式循环一个表格?

local tbl = {
    ["hello"] = 1,
    [2] = 2,
    [50] = 3,
    ["bye"] = 4,
    [200] = 5
}
Run Code Online (Sandbox Code Playgroud)

我的意思是,当我使用"成对"时,每次执行代码时我都会得到不同的顺序......

我正在寻找这样的东西:

function get_keys(tbl)
    local rtable = {}
    for k,v in pairs(tbl) do
        table.insert(rtable, k)
    end
    return rtable
end

local keys_of_tbl = get_keys(tbl)
for i = 1, table.getn(keys_of_tbl) do
    --Do something with: tbl[keys_of_tbl[i]]
end
Run Code Online (Sandbox Code Playgroud)

但是因为函数"get_keys"再次基于"成对",它将无法工作......

lua loops lua-table

4
推荐指数
2
解决办法
4474
查看次数

数组作为 lua 表中的值

我找不到问题的答案:Can you have an array as value in a lua table?

local colors = {"blue" = {0,0,1,1}, "green" = {0,1,0,1}, "red" = {1,0,0,1} , "orange" = {0.5, 0, 0.5, 1}, "black" = {0,0,0,1}, "gold" = {1, 215/255, 0, 1}}
Run Code Online (Sandbox Code Playgroud)

我使用 corona sdk 在这一行收到错误:

'}' 预计位于 '=' 附近

arrays lua key-value coronasdk lua-table

4
推荐指数
1
解决办法
6366
查看次数

如何从Lua中的表中获取值

我有包含多个值的表,我想打印每个值。

像是:

“值_1”“值_2”等等。

 table = {
        {'value_1'},
        {'value_2'},
        {'value_3'},
        {'value_4'},
    }
Run Code Online (Sandbox Code Playgroud)

我尝试过for k, v但失败了:

for k, v in pairs(table) do
    print(v)
end
Run Code Online (Sandbox Code Playgroud)

lua lua-table

4
推荐指数
1
解决办法
3万
查看次数

Lua中如何根据表的值对表进行排序?

我有一个由键/值对组成的表:

mytable[a] = 1, 
mytable[b] = 4, 
mytable[r] = 7, 
mytable[f] = 2,
Run Code Online (Sandbox Code Playgroud)

ETC。

我想按数字对表格进行排序。所以我希望表格为 {(a, 1), (f, 2), (b, 4), (r, 7)} 我尝试使用

table.sort(mytable, function(a, b) return a[2] > b[2] end)
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用...谢谢

arrays lua lua-table

4
推荐指数
1
解决办法
4620
查看次数

如何使用 lua 关键字作为表键?

问题

当我使用dolua 关键字作为表的键时,会出现以下错误

> table.newKey = { do = 'test' }
stdin:1: unexpected symbol near 'do'
>

Run Code Online (Sandbox Code Playgroud)

我需要用作do密钥。我应该怎么办 ?

lua luajit lua-table

4
推荐指数
1
解决办法
1268
查看次数