Squirrel その5

今回で Squirrel の言語仕様解説は終了。
C言語と同様に条件分岐には if と else を使います。

if(i == 0){
}
else if(i == 1){
}
else{
}

ループには for 、while 、do?while が使えます。どれもC言語と同じ使い方です。
for 文は for 文内で変数宣言することもできます。

for(local a=0; a<10; a++){
}

C言語にはありませんが、C#にはある foreach が使えます。
foreach は配列やテーブルのスロットの数だけループします。

local arr = ["zero", "one", "two"];
foreach(i, v in arr){
    print(i + ", " + v + "\n");
}

結果:
0, zero
1, one
2, two

この例の場合、i にスロット名、v にスロットの中身が入ります。
i, の部分をはずすこともできます。その場合も v にはスロットの中身が入ります。
ループ中に break, continue の使用もできます。

typeof 命令を使用すると変数の型を文字列として取得することができます。

local a = 0;
local b = "zero";
local c = 0.0;

print(typeof a + "\n");
print(typeof b + "\n");
print(typeof c + "\n");

結果:
integer
string
float

instanceof 命令を使用するとどのクラスのインスタンスかを調べることができます。

class Foo{
    x = 0;
};

a = Foo();
if(a instanceof Foo){
    print("This is Foo.\n");
}

インスタンス名 instanceof クラス名”で、一致していれば true を、不一致なら false を返します。

その他、様々な組み込み関数があります。
これらの関数はヘルプにもありますのでそちらを参照してください。
よく使いそうな関数なら dofile() あたりでしょうか。
この命令は引数として .nut ファイル名を指定することで他のファイルを実行することができます。
いわゆるヘッダファイルのインクルードみたいなものですね。
なお、Squirrel を自作プログラムに組み込む場合、組み込み関数を使用するかしないかをいくつかのグループに対して指定することが出来ます。

次回はSquirrelを自作プログラムに組み込む方法についてやっていきます。