データとオブジェクト、変数について

BroomScriptでは基本的なデータ型も含めて、全てのデータはオブジェクトです。

オブジェクトは値型と参照型に別れます。変数には値型ならデータそのものが格納され、参照型ならオブジェクトのインスタンス(実体)への参照が格納されます。

値型のオブジェクトは明示的に生成する必要はありませんが、参照型のオブジェクトはNewなどでインスタンスを生成しないと参照することが出来ません。

a=10

変数aに数値型オブジェクトの10というデータが代入されます。
数値型オブジェクトは値型で生成手続きなどが不要なので、オブジェクトという事を意識せずに使うことが出来ます。

b=String.New(10)

変数bにString型のインスタンスへの参照が代入されます。
Stringは参照型なのでNewでインスタンスを生成しています。


res=Resource.New("sample.fr")
d=res.Find(RES_MML,0)
Music.Play(d,FALSE)

最初の行でsample.frファイルをアクセスするリソースオブジェクトのインスタンスを生成し、その参照を変数resに代入しています。今度はそのresからMML形式のリソースを探して、見つけたMMLリソースオブジェクトへの参照を変数dへ代入しています。
最後にその変数dを通してMMLリソースへアクセスし、システムオブジェクトMusicのPlayメソッドを使ってMMLデータを演奏しています。
この様にあるオブジェクトが、別のオブジェクトへの参照を返すこともあります。

変数自体には型がありません。変数の型は中に入っているデータによって変化します。
初期化されていない(何も入っていない)変数の参照はエラーになります。

オブジェクトは参照カウンタで管理され、不要になったオブジェクトはガベージコレクタで回収し、メモリを開放します。


数値型

16ビット符号付き整数です。
-32768〜32767の範囲を取ることが出来ます。


ToStr

数値型をString型へ変換します。

数値型データ.ToStr

数値型データをString型へ変換します。

数値型データ.ToStr(フォーマット文字列)

数値型データをフォーマット文字列に従ってString型へ変換します。
フォーマット文字列はprintfの指定と同じで、%の後に以下の制御文字を記述します。
d 10進符号付き整数を表示します。
u 10進符号なし整数を表示します。
x 16進数を表示します。
c 1文字出力します。文字コードをcharで与えます。
- 出力を左詰めします
0 余った桁を'0'で埋めます。
数値 出力桁数を10進数で指定します。
, 10進数を出力する際、3桁ごとに','で区切ります。


論理型

TRUE(真)かFALSE(偽)の値をとる論理値です。




文字列

文字列には文字列定数型とString型があります。




String型

可変文字列が必要な場合や、一時的に文字列オブジェクトが必要な場合に使います。



文字列定数型

プログラム内で"文字列"として定義した文字列で、内容を変更することは出来ません。



配列

BroomScriptでは配列もArray型のオブジェクトです。

a=Array.New(10)

で要素数10の配列が作られ、その配列への参照が変数aに設定されます。
要素番号は0から要素数-1までになります。

各要素へのアクセスは変数名の後ろに要素番号を[]で囲んで書きます。

a[0]=100
b=a[1]

要素番号はアクセスがある度にチェックされます。宣言された範囲を超える配列へのアクセスはエラーになります。

Array型がサポートしている配列は1次元だけですが、配列もオブジェクトなので、ArrayのなかにArrayを代入することで多次元配列を表現できます。