lua-table相关内容

获取表中的最大值

如何在Corona SDK/Lua中获取表格中的最大值? 例如,我有这样一个表: local table = { ["item1"] = 10, ["item2"] = 20, ["item3"] = 30, ["item4"] = 40, ["item5"] = 50 } 我必须得到第5项及其值50作为答案。 推荐答案 local max_v ..
发布时间:2022-05-10 22:47:52 其他开发

如何在删除键时安全地迭代 lua 表

在我的主协程中,我根据用户操作从表中删除或添加条目.在后台,我想遍历表中的条目.如果我错过了一次迭代中的插入,我不介意,只要我能在下一次之前抓住它. 使用 pairs 对其进行迭代是否安全?还是应该使用 next 代替? 解决方案 您可以在遍历表时安全地删除条目,但不能创建新条目,即新键.不过,您可以修改现有条目的值.(删除条目是该规则的特例.) ..
发布时间:2022-01-24 11:56:06 其他开发

推一个 Lua 表

我已经在 C 中创建了一个 Lua 表,但我不确定如何将该表推送到堆栈顶部,以便将其传递给 Lua 函数. 有人知道怎么做吗? 这是我当前的代码: lua_createtable(state, libraries.size(), 0);int table_index = lua_gettop(state);for (int i = 0; i 解决方案 这里有一个快速帮助函数将字 ..
发布时间:2022-01-22 12:53:26 C/C++开发

Lua - 将字符串转换为表格

我想将字符串文本转换为表格,并且此文本必须按字符进行划分.每个字符都必须在表的单独值中,例如: a="文本" --将字符串(a)转换为表(b) --显示表格(b) b={'t','e','x','t'} 解决方案 你可以使用 string.gsub 函数 t={}字符串=“文本"str:gsub(".",function(c) table.insert(t,c) end) ..
发布时间:2021-12-30 20:53:23 其他开发

table.insert(t, i) 和 t[#t+1] = i 有什么区别?

在 Lua 中,似乎有两种方法可以将元素附加到数组中: table.insert(t, i) 和 t[#t+1] = i 我应该使用哪个,为什么? 解决方案 使用哪个取决于偏好和环境:由于 # 长度运算符是在 5.1 版中引入的,t[#t+1] = i 在 Lua 5.0 中不起作用,而 table.insert 从 5.0 开始就已经存在,并且可以在两者中使用.另一方面,t[#t ..
发布时间:2021-12-30 20:51:23 其他开发

如何遍历Lua中的表?

所以,我有一个类似以下内容的表格: arr ={苹果 = { 'a', "red", 5 },橙子 = { 'o', "orange", 12 },梨 = { 'p', "绿色", 7 }} 似乎不可能根据它们的索引访问它们,而值本身就是表,所以我只是将嵌套表的第一个值作为它的索引,所以现在看起来像这样: arr ={苹果 = { 0, 'a', "red", 5 },橙子 = { 1, ' ..
发布时间:2021-12-30 20:46:51 其他开发

使用部分字符串 lua 查找完整字符串

我试图在表格中找到整个字符串,而没有写出完整的字符串. 示例: maintable = {"SecondString", "FirstString"}c = "第一" 如何使用字符串 c 来查找 FirstString 的全名而不键入整个字符串名称? 解决方案 你必须搜索表格: for k,v inpairs(maintable) do如果 v:match(c) 然后 prin ..
发布时间:2021-12-30 20:45:02 其他开发

“魔方"算法

作为一项实验,我正在尝试创建一个幻方程序,用九个数字检查每个可能的方格.对于那些不知道的人来说,幻方是一个由 1-9 数字组成的 3x3 网格,其中每行、每列和对角线的总和为 15.例如: 我将如何使用 Lua 使用表格检查每个方块?我从下表开始: local sq = {1, 1, 1,1, 1, 11, 1, 1} 我将如何以正确的顺序检查每张桌子?我能够在纸上画出我的想法,但我不完 ..
发布时间:2021-12-30 20:41:31 其他开发

使用“#"运算符来计算Lua中表的长度?

当我使用 # 来计算表格的长度时,我有一个问题.例如: local t = {"a", "b"}本地 t1 = {"a", nil}打印(#t) -- 2打印(#t1) -- 1 local t = {"a", "b"}本地 t1 = {nil, "a"}打印(#t) -- 2打印(#t1) -- 2 谁能告诉我这是为什么? 解决方案 除非定义了 __len 元方法,# 操作符只能对 ..
发布时间:2021-12-30 20:39:17 其他开发

为什么 Lua 中的长度不同

我正在为 corona sdk 学习 Lua,我有这些 local type1 = {nil, "(", nil, "x" ,nil , ")" ;n=6}local type2 = {"(",nil, "x",nil, ")",nil ;n=6}打印(#type1)--打印6打印(#type2)--打印 3 为什么第二个也不是6?? 解决方案 # 运算符不适用于每个表,它只适用于一个 ..
发布时间:2021-12-30 20:37:28 其他开发

在 Lua 4 中将表值作为函数参数传递,无需“调用"功能

我有一个原则上可以是任意长度的值表: 点数 ={“第 1 点",“第 5 点",“第 7 点",“第 10 点",“第 5 点",“第 11 点",“第 5 点",} 我想将它们作为参数传递给函数. addPath(, , , ...) 现在,通常您可以使用“呼叫"功能.但在我使用的软件中,此功能不可用且不在范围内. 如何在 Lua 4 中解决这个问题? [编辑] 这里是 ..
发布时间:2021-12-30 20:35:49 其他开发

序列化lua表的方法

我可能错过了这个,但是有没有内置的方法可以将 lua 表序列化/反序列化到文本文件,反之亦然? 我有一对方法可以在固定格式的 lua 表上执行此操作(例如,3 列数据和 5 行). 有没有办法在具有任何任意格式的lua表上执行此操作? 举个例子,给定这个lua表: 局部场景={{name="scnSplash",对象={{名称=“背景",类型=“背景",path="scnSpl ..
发布时间:2021-12-30 20:33:11 其他开发

lua c 读取嵌套表

下面是我需要从 C 读取的 lua 表: listen = {{端口=1234,地址=“192.168.1.1",用户数据=“liunx"},{端口=1235,地址=“192.168.1.2",用户数据=“liunx1"},{端口=1236,地址=“192.168.1.3",用户数据=“liunx2"}} 下面是c代码: #include /* 在调用 Lua 时总是包含这个 */#incl ..
发布时间:2021-12-30 20:29:30 服务器开发

如何在删除密钥时安全地迭代 lua 表

在我的主协程中,我根据用户操作从表中删除或添加条目.在后台,我想遍历表中的条目.如果我在一次迭代中错过了插入,我并不介意,前提是我可以在下一次之前抓住它. 使用 pairs 迭代它是否安全?还是我应该使用 next 代替? 解决方案 您可以在遍历表时安全地删除条目,但不能创建新条目,即新键.不过,您可以修改现有条目的值.(删除条目是该规则的一个特例.) ..
发布时间:2021-12-30 20:27:58 其他开发

返回 Lua 表中某个值的索引

我在 lua 中有这个表: local values={"a", "b", "c"} 如果一个变量等于一个表条目,有没有办法返回表的索引?说 local onevalue = "a" 如何在不迭代所有值的情况下获取表中“a"或一个值的索引? 解决方案 接受的答案有效,但仍有改进的空间: 一旦找到元素,为什么不退出循环?为什么要把整个源表复制到一个新的一次性表中? 通常,这种 ..
发布时间:2021-12-30 20:25:13 其他开发

使用 Lua C API 迭代表

我正在尝试遍历 Lua 中的表并输出: 每个表的键. 每个表中每个条目的键/值对. 代码如下: void print_table(lua_State *L){lua_pushnil(L);而(lua_next(L,-2)!= 0){const char *key = lua_tostring(L, -2);如果(lua_isstring(L,-1))printf("%s = %s" ..
发布时间:2021-12-30 20:24:49 其他开发

Lua表的一个有趣现象

我是 Lua 的新手,最近我正在学习 table 的用法.从教程中我知道Lua对数字索引项和非数字索引项的处理方式不同,所以我自己做了一些测试,今天发现了一个有趣的现象,我无法解释: 代码 t = {1, 2, 3, a='a', b='b'}打印(#t) 得到 3 因为 # 运算符只计算数字索引项.然后我测试了下面的代码 t = {1, 2, 3, a='a', b='b'}打印 ..
发布时间:2021-12-30 20:24:25 其他开发