字符串和整数之间的Lua表索引问题
我创建了一个复杂的表表,并使用一个变量作为索引。出于某种原因,我的代码有很多问题 事实证明,我必须将索引转换为字符串 所以 需要成为字符串和整数之间的Lua表索引问题,lua,Lua,我创建了一个复杂的表表,并使用一个变量作为索引。出于某种原因,我的代码有很多问题 事实证明,我必须将索引转换为字符串 所以 需要成为 myTable[tostring(index)] 否则 有时索引将充当字符串,而有时它将充当整数(尽管我从未在代码中的任何一点将索引转换为字符串) 这导致了问题,因为将创建myTable[1]和myTable[“1”],并且两者都不同(我在k/v对上循环,因此myTable[1]不会显示) 这是一个非常奇怪的行为,但我想这是意料之中的?有没有办法基于始终使用字符
myTable[tostring(index)]
否则
有时索引将充当字符串,而有时它将充当整数(尽管我从未在代码中的任何一点将索引转换为字符串)
这导致了问题,因为将创建myTable[1]
和myTable[“1”]
,并且两者都不同(我在k/v对上循环,因此myTable[1]
不会显示)
这是一个非常奇怪的行为,但我想这是意料之中的?有没有办法基于始终使用字符串索引的表创建一个新类型,这样就可以避免这种情况?Lua根据使用字符串和数字的上下文,自动在字符串和数字之间进行强制(请参见和) 似乎在这个过程中的某个地方,您要么从文件中读取索引,要么使用字符串串联运算符
。
,然后它就变成了一个字符串。在我看来,您似乎只想使用数字索引
要确保
index
保留一个数字,请在处理或读取文件后使用tonumber()
-index=tonumber(index)
。在Lua表的视图中,1
和“1”
是不同的键。Lua会根据使用字符串和数字的上下文自动在字符串和数字之间强制(请参见和)
似乎在这个过程中的某个地方,您要么从文件中读取索引,要么使用字符串串联运算符。
,然后它就变成了一个字符串。在我看来,您似乎只想使用数字索引
要确保index
保留一个数字,请在对文件进行任何处理或读取后使用tonumber()
-index=tonumber(index)
。在Lua表的视图中,1
和“1”
是不同的键
myTable[tostring(index)]