トップ > MAP作成 > トリガーエディタ > Jass Script > Jass講座 > 変数型
変数型の、その正体について。MAP作りにはあんまり関係ないけれど、仕組みを理解するのにはいいかも。効率のいいスクリプトを書くためにも、便利かもしれない。 変数の種類実は、Integer、Real、Boolean、String、の四種類しかない。 一見、ほかにも unit や item など沢山あるように見えるが、それらは handle型変数 と呼ばれるもので、実際にその変数に格納されているのはただの整数、つまり integer だ。 Handle型変数handle型変数 の本体は、たとえば unit などは沢山の要素をもち、比較的大きなデータサイズをもつが、実際に変数に入っているのはその格納場所を示すただの整数値(いわゆる、ポインタのようなもの)だ。 GameCachehandle の値は変数にとって独特なもので、同じものはない。また、あらゆる handle型変数 は以下の関数を使って整数化できる。 function H2I takes handle hwnd returns integer return hwnd return 0 endfu GameCacheでは、これらの性質を利用している。 Jass Scriptネイティブのゲームキャッシュ関数では、文字列1 + 文字列2 に変数を関連付けて保存する。GameCacheライブラリでは、この 文字列1 に、『handle型変数のhandle(整数)を文字列化したもの』を設定することで、データをhandle型変数に関連付けている。 |