【问题标题】:Understanding GameMonkey Script Mixed Arrays了解 GameMonkey 脚本混合数组
【发布时间】:2018-01-10 08:57:53
【问题描述】:

我刚刚在https://www.gamedev.net/articles/programming/engines-and-middleware/introduction-to-gamemonkey-script-r3297/ 上阅读 GameMonkey Script 的一些介绍性内容,当他们解释混合数组时,他们说您可以使用和索引或键来访问元素,具体取决于值的声明方式,例如如果我有下一个数组

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 处?

【问题讨论】:

    标签: scripting-language


    【解决方案1】:

    虽然您可以将 gm Table 视为 Array 或 Map,但您不能同时有效地执行这两种操作。 在内部,Table 只是一个哈希表,您的索引访问方法有点像迭代器。 在您的示例中,因为值“Test”被分配给键“KeyV”,所以它会弄乱原本连续的索引顺序。

    希望这能让您了解原因。尝试迭代没有“键”的表,并再次使用所有键值对。观察不同的行为。

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

    【讨论】:

      猜你喜欢
      • 2013-04-21
      • 2017-07-25
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      • 2012-03-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多