区切り文字にドット「.」を使って左辺と右辺を連結した表記法を「ドット記法 (ドットシンタックス)」といいます。
sampleA.variableA /* sampleA というオブジェクト・インスタンスの変数A */
sampleB.variableA /* sampleB というオブジェクト・インスタンスの変数A */
シンタックスとは、コンピュータ言語などで定められている構文規則のこと。
ドット記法は記述の単純さの割に意味が読み取りやすいため、数学※を始めコンピュータ関連とその開発言語間では様々な利用が成されています。
※ 数学だとニュートン記法がドット記法という別名を持ちます。
※ ドット記法は汎用的に様々な開発言語で利用されています。例えば C言語では左辺がポインタであることを示す場合にアロー演算子を使いますが、アロー演算子は糖衣構文(シンタックスシュガー)なので、アロー演算子を用いた記述も本来はドット記法で表現可能です。
GML では変数にドット記法を利用することでオブジェクトを区別し、変数参照の対象を明確化します。
左辺.右辺所有者.変数ドット記法と変数のスコープ
GML では変数のスコープ(参照できる範囲)とドット記法は強い関連があります。
- グローバル化された変数および定数(Enums)へのアクセス
- オブジェクトの持つインスタンス変数へのアクセス
スコープで分類した場合この二つにドット記法が用いられます。GML ではスコープがグローバルであることを明示した方が安全になるためドット記法の利用が推奨されます。
global.VARIABLE = "これはグローバル変数です";var a = global.VARIABLE;やや例外的なのが Enums (列挙型)で、これは定数かつスコープはグローバルですがデータ構造の一種だと考えられ、Enums の定義の仕方は連想配列(ハッシュ)のように「キー」と「値」がペアとして関連付けされています。
列挙型はブール型と同じく型として確認する手段が用意されていません。
列挙型は以下のように定義し、値の呼び出しにドット記法が利用されます。
enum rainbowcolors { red = 5, orange = 5 * 2, yellow = 15, green = 20, blue = 25, indigo = 30, violet = 35 };var value = rainbowcolors.green;