有没有办法从 Lua 表中去除 true/false 值

我需要创建一个新的表,没有 = true 或 false 的值 目前该表如下

local t = { foo = "true", bar = "false" }

变成

local t = { foo, bar }

我试图搜索,但找不到示例

点赞
用户2858170
用户2858170

foobar 是表的键。所以您实际上想创建一个表键的列表。

local result = {}
for k in pairs(t) do table.insert(result, k) end

您可以通过遍历表并将每个键存储在一个新表中来实现这一点。请注意,t 没有顺序,因此 result 的顺序不是保证的。

2021-02-20 16:00:57
用户660391
用户660391
本地的 t 变量等于一个匿名函数的结果,该函数接收可变参数(...)作为输入。函数使用一个 for 循环来遍历输入参数中的键值对,将键 append 到一个名为 ret 的 table 中。最后,函数返回该 table。
在这个例子中,输入参数实际上是一个带有两个键值对的 table,其中 foo 的值为 "true",bar 的值为 "false"。因此,当函数运行完毕并将结果赋值给 t 变量时,t 的值将是一个 table,包含字符串 "foo""bar"

对应的 markdown 格式为:


local t = (function(...)local ret={} for key,val in pairs(...) do --print(k,v) ret[#ret+1]=k end return ret end){ foo = "true", bar = "false" }

```

2021-02-21 01:07:18