我想将2d lua表转换为字符串,然后将其转换为字符串后,使用新创建的字符串将其转换回表.好像这个过程被称为序列化,并在下面的url中讨论,但我很难理解代码,并希望有人在这里有一个简单的table.toString和table.fromString函数
http:// lua- users.org/wiki/TableSerialization
在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 文件,这样我就可以以可视化格式显示其数据供用户编辑。
如果我有一个像这样的 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++ 中访问键的名称和相应的值。这可以做到吗?如果是这样我该怎么办?
嗯,赋值之间有什么区别:
Lesson["Maths"] = {grade = 10, class = 3}
Run Code Online (Sandbox Code Playgroud)
和
Lesson["Maths"] = {["grade"] = 10, ["class"] = 3}
Run Code Online (Sandbox Code Playgroud)
如果我想为表中的键分配值,我应该选择哪一个?或者说哪一种用的比较多?多谢
我目前面临的问题是你不能__gc在 Lua 5.1 中使用表的方法,因为它们是在 Lua 5.2 中实现的。但是,我想在收集 lua 表后释放分配的本机资源。是否可以制定一个解决方法,__gc为 Lua 5.1 提供 Lua 5.2 中元方法的功能?
有没有办法按照下面的表格以与写入的顺序相同的方式循环一个表格?
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"再次基于"成对",它将无法工作......
我找不到问题的答案: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 在这一行收到错误:
'}' 预计位于 '=' 附近
我有包含多个值的表,我想打印每个值。
像是:
“值_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) 我有一个由键/值对组成的表:
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)
但这似乎不起作用...谢谢
当我使用dolua 关键字作为表的键时,会出现以下错误
> table.newKey = { do = 'test' }
stdin:1: unexpected symbol near 'do'
>
Run Code Online (Sandbox Code Playgroud)
我需要用作do密钥。我应该怎么办 ?