識別子
識別子とは、変数や関数、クラス名に割り当てる名前のことです。
AliceScriptの変数名や関数名、クラス名などの識別子は、基本的に好きな名前をつけることができますが、次のルールを守る必要があります。
- AliceScriptのキーワード(
string
やbool
など)は使用できない - サロゲートを使用する文字(2バイトに収まらない文字)は使用できない
- 関数名や変数名は、次の正規表現にマッチする必要がある
正規表現
この仕様は、Unicode® Standard Annex #31におおむね準拠しています。
^[\p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}\p{Nl}][\p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}\p{Nl}\p{Mn}\p{Mc}\p{Pc}\p{Nd}\p{Cf}\.]*$
また、識別子に空の文字列を使用することはできません。
例
AliceScript
var hoge = 0;//OK
var hoge_2 = 0;//OK
var void = null;//NG(1に違反する)
var 𩸽 = "ほっけ";//NG(2に違反する)
var _hoge = 0;//NG(3に違反する)
var 1_data = false;//NG(3に違反する)
var 🙂 = true;//NG(2と3に違反する)
AliceScriptには、識別子に一文字目から使用できる文字と、二文字目以降で使用できる文字があります。
一文字目から使用できる文字
識別子の一文字目には、以下のUnicodeクラスに所属する文字が使用できます。
クラス名 | 説明 |
---|---|
Lu | 大文字 |
Ll | 小文字 |
Lt | タイトル文字 |
Lm | 文字修飾子 |
Lo | その他の文字 |
Nl | 文字として扱われる数字 |
二文字目以降で使用できる文字
識別子の二文字目以降では、一文字目に使用できる文字に加えて以下のUnicodeクラスに所属する文字が使用できます。
クラス名 | 説明 |
---|---|
Mn | 結合文字(幅なし) |
Mc | 結合文字(幅あり) |
Pc | 句読点や接続文字 |
Nd | 数字(Nlに含まれないもの) |
Cf | 書式指定文字 |
また、これに加えて二文字目以降には、.
ピリオドも使用できます。