2017-08-02 10 views
1

GameMonkey Scriptの入門用のものをhttps://www.gamedev.net/articles/programming/engines-and-middleware/introduction-to-gamemonkey-script-r3297/で読んでいましたが、Mixed Arraysについて説明していたときに、値の宣言方法に応じて、私は次のアレイGameMonkeyスクリプト混合配列の理解

myMixedArray = table(1, 3, 4, KeyV = "Test", 33); 

を持っている場合ので、例えば、私は私はそれをやる「テスト」にアクセスするために次のインデックス0、1、2、3及び を使用して1、2、4および33にアクセスすることができこのように

myMixedArray["KeyV"] <- ("Test") 

今すぐあなたは上記のリンクで

enter image description here

を見つけることができ、以下の画像と鼎MYTESTであることが予想番号[3] 7ですが、それは通常の値とキーvalの要素の両方がないことを意味します実際に配列内で分離されています。

もしそうでなければ、なぜ7が配列のインデックス3にあるのでしょうか?

答えて

0

gmテーブルを配列またはマップとして扱うことはできますが、効果的に両方を同時に実行することはできません。 内部的には、テーブルはハッシュテーブルにすぎず、インデックスアクセスメソッドはイテレータのように少しです。 あなたの例では、値 "Test"がキー 'KeyV'に割り当てられているので、それ以外の場合は連続したインデックス順が崩れます。

それがあなたに原因の考えを与えることを望みます。 'キー'がないテーブルを繰り返し、すべてのキー値のペアをもう一度試してみてください。異なる動作を観察します。

もしあなたが配列について真剣に考えているのであれば、バインディングを使って、必要な振る舞いを持つ配列型を作成するほうが良いかもしれません。 GMソースには、配列コンテナの例があります。