2017-08-02 102 views
1

我刚刚从GameMonkey脚本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") 

now accor丁与下面的图片,你可以在上面的链接找到

enter image description here

预计将在MYTEST [3] 7号,但是这将意味着两个常规值和关键-VAL元素不是真的在数组中分开。

如果不是那么为什么会7在数组的索引3?

回答

0

虽然您可以将gm表视为数组或地图,但无法同时有效地执行这两个操作。 在内部,表只是一个哈希表,而您的索引访问方法有点像迭代器。 在您的示例中,因为值“Test”已分配给键'KeyV',所以会扰乱其他连续的索引顺序。

希望能给你一个关于原因的想法。尝试迭代没有“键”的表格,并再次使用所有键值对。观察不同的行为。

如果您认真对待数组,您最好使用绑定来创建具有所需行为的数组类型。 GM源有一个数组容器的例子。