LUA 变量作为表键

标签 lua

我创建并填充一个表:

table.insert(logTable, { [probeName] = "日志文本"}

这是在 [key] 部分中使用变量的正确方法吗?

我在想 lua 将其解释为整数而不是字符串?

最佳答案

{ [probeName] = "日志文本"} 将创建一个由变量 probeName 的值索引的文字表。所以这将取决于该值的类型。它可以是整数、字符串、函数或表等。

所以:

probeName = 'abc'
for k, v in pairs({ [probeName] = "log text" }) do print(type(k), k, v) end
probeName = 123
for k, v in pairs({ [probeName] = "log text" }) do print(type(k), k, v) end
probeName = { 'another table' }
for k, v in pairs({ [probeName] = "log text" }) do print(type(k), k, v) end

产生输出:
string  abc log text
number  123 log text
table   table: 0xfa6050 log text

现在, table.insert(logTable, { [probeName] = "log text"} 实际上会采用该文字表并将其插入到另一个具有整数索引的表 (logTable) 中。因此 logTable 将包含一堆整数索引的表条目,每个都有一个值(日志文本),该值由某个值(probeName)作为键。使用 ipairs 对其进行迭代。如果您希望通过探针名称将所有日志累积到一个表中,您需要执行类似 logTable[probeName] = "log text" 的操作,这实际上更简单。使用 对其进行迭代。

希望这可以帮助。

关于LUA 变量作为表键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11359737/

相关文章:

vim - 将条件 vimscript 映射转换为 lua (neovim) (在 lua 中提交 <CR>)

c++ - 与 QtScript 相比,带有 Qt 的 Lua 有多容易?

c++ - 静态虚函数

sockets - luasocket 的问题

error-handling - LUA 错误我想不通

c# - 从 NLua 获取函数列表

c++ - 使用 C API 覆盖 Lua 中的赋值运算符

从 c 调用 Lua 脚本中的一个特定函数

Lua:有没有办法连接 "nil"值?

python - 如何使用 scrapy_splash 包在表单发布后重定向?