配列 (Arrays)
配列は、数値やオブジェクトなどの要素のリストを格納するために使用されます。多くの場合、配列は1次元ですが、グリッドや3D空間に関連するデータを格納するために多次元配列として使用されることもあります。
配列の各要素は、0から始まる整数インデックスで参照されます。
配列はオブジェクトであり、新しい値の追加、配列のサイズ取得、値の並び替え、値のシャッフルなどを行うための便利なヘルパー関数が利用可能です。
配列がオブジェクトであるため、関数に渡されると参照によって渡されます。そのため、関数内で配列の要素に加えられた変更は、渡された元の配列オブジェクトに直接反映されます。
以下のコード例では、GDScript の配列の使用方法を示します:
extends Node2D
func _ready(): # 配列インスタンスの作成方法 var a = Array() var b = [] var c = ["a", "b", "c"] # 配列 'a' にアイテムを追加 a.append("Item 1") a.append("Item 2") # 配列を参照渡しで関数に渡す change(a) # 変更が適用されたことを確認 print(a[0]) # 配列 'b' のサイズを出力 print(b.size()) # 配列 'c' の値をシャッフル c.shuffle() # この関数は値を返さない # 要素の順序が変わったか確認 print_elements_of(c) func change(a): a[0] = 1
func print_elements_of(array): # Pool 配列型の一つを使用 print(PoolStringArray(array).join(""))
さらにヘルパー関数(メソッド)の詳細を学びたい場合は、Array クラスのドキュメントを参照してください。
また、大規模なデータセットを格納するための
PoolByteArray
クラスもあります。このクラスは単一データ型の配列をメモリ内で分割されることなく安全に格納するために設計されています。ただし、今のところはあまり気にする必要はありません。
他にも、より高度な機能を持つさまざまな Pool 配列型があります。たとえば、配列を結合したり、文字列要素を1つの文字列にまとめたりすることができます。
通常は固定サイズの配列を使用したり、新しい要素を配列の末尾に追加したりします。ただし、FIFO(先入れ先出し)バッファや FILO(先入れ後出し)バッファを実装するような配列の高度な用途もあります。このような用途では、配列の片方の端に値を追加し、もう片方の端から値を削除することがあります。
そのため、配列要素をプッシュ、ポップ、挿入、削除するためのメソッドがあります。また、すべての配列型には、追加機能を利用するために別の型に変換するメソッドも用意されています。