コンテンツにスキップ

組み込み型

組み込み型の種類

HeliScriptには以下の基本型が用意されています。

内容
int 32bit符号あり整数値
float 32bit浮動小数点数
bool 真偽値 (true, またはfalse)
string UTF-8 文字列

class型

構造を持ち、ユーザーが独自に定義、生成できる型として、class型が用意されています。

内容
class 構造を持つ参照型 (有効な参照値, または NULL)

参照の管理

classのインスタンスは参照として取り扱われます。

HeliScriptでは、参照カウンタによって参照の寿命を管理しています。これは、オブジェクトがどこかから参照された時点で内部的に記録している「参照カウンタ」を増加させ、参照が解除された時点で「参照カウンタ」を減らします。どこからも参照されなくなったオブジェクトは、「参照カウンタ」が0になり、自動的に削除されます。

なお、何も指していない「空の参照」を表現する値として、HeliScriptは NULL を用意しています。

参照の取得

関数の引数定義に ref を付与すると、引数の参照渡しを行います。

つまり、引数を渡した先で代入を行うと、呼び出し元の変数を書き換えることができます。

void RefFunc(ref int x, ref int y) {
    x = 100;
    y = 200;
}

void Test() {
    int x = 0;
    int y = 0;

    // 引数をrefで渡す
    RefFunc(x, y);

    // -> "x=100, y=200"
    hsSystemOutput("x=%d, y=%d\n" % x % y);
}

「文字列」と「文字」

ダブルクォーテーション 「""」で囲まれた文字列を、HeliScriptは文字列オブジェクトとして認識します。

シングルクォーテーション 「''」 で1つの文字を囲むと、それは文字型になります。文字型は、内部的に32bitの整数値として表現されます。

// 文字列型のオブジェクト
string str = "VketCloud";
// 文字型 (実際には整数値)
int chr = 'V';

未初期化の変数の自動初期化

変数を定義した際に、初期化を行わなかった場合、型によって以下の初期値が自動で設定されます。

初期値
int 0
float 0.0f
bool false
string 空文字列
class NULL

bool型は内部的に32bit整数値として扱われ、true は 1、false は 0 が割り当てられます。 bool型の変数に整数値を代入した場合、0は false に、それ以外は全て true に変換されます。