我创建并填充了一个表格:
table.insert(logTable,{[probeName] =“日志文本”}
在[key]部分使用变量的方式正确吗?
我认为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
probeName
是一个数字,Lua会将其解释为数字,但它不会将包含数字的字符串转换为数字。如果它是一个数字并且您想将其转换为字符串,可以使用强制转换(["" .. probeName]
)或字符串格式化([string.format("%d", probeName)]
)。tostring
。 - Nicol Bolas