我只是在https://www.gamedev.net/articles/programming/engines-and-middleware/introduction-to-gamemonkey-script-r3297/上阅读GameMonkey脚本中的一些介绍性内容,当他们解释混合数组时,他们说你可以使用和索引或键来访问元素,具体取决于声明值的方式,所以例如,如果我有下一个数组
myMixedArray = table( 1, 3, 4, KeyV = "Test", 33);
然后我可以使用下一个索引0,1,2,3和来访问1,2,4和33 访问"测试"我会这样做
myMixedArray["KeyV"] <- ("Test")
现在根据您可以在上面的链接中找到的以下图片
预期在myTest [3]的数字是7,但这意味着常规值和key-val元素在数组中并没有真正分开。
如果没有那么为什么7会在数组的索引3处?
答案 0 :(得分:0)
虽然您可以将gm表视为数组或映射,但您无法同时有效地执行这两个操作。 在内部,Table只是一个哈希表,你的索引访问方法有点像迭代器。 在您的示例中,因为值“Test”被分配给键“KeyV”,所以它会混乱其他连续的索引顺序。
希望能让您了解原因。尝试迭代没有'键'的表,并再次使用所有键值对。观察不同的行为。
如果您对数组很认真,那么最好使用绑定来创建具有所需行为的Array类型。 GM源代码有一个数组容器的例子。