Skip to content
Silica edited this page May 23, 2012 · 7 revisions

#Type (型) ##PSL Type 型名は全て言語的に既定された物ではないことに注意すること(後述) ###int 32bit signed integer ###hex logical shift ###float floating point number ###string text string ###ref reference ###thread Coroutine ###object 明示的に型を宣言せずに変数を使用した場合、それらは全てobject型として扱われる
空のobjectに対して値が代入された場合、
値は型ごとコピーされて空のobjectを持っていた変数に代入されることになる
object型はindexでアクセスしたりメンバを持つことが出来る
関数、クラス、クラスのインスタンスは全てobject型である ##declaration [local/global/static] [type] name;
スコープ指定を省略した場合はlocal変数として扱われる
型名を省略した場合、空のobject型として変数は作成される

型名を指定した場合、それがクラスであればクラス内の、メンバをコピー、関数をメソッドとして登録し
クラス自身のコードをコンストラクタとして実行する
コンストラクタ内でのスコープ指定のない変数の宣言はインスタンスへのメンバの登録として行われる

型名として与えられた変数がクラスでは無い場合、
単にその値のコピーとして変数は作成される
このことから分かる様にint型とは単に値0を持つglobal変数intに過ぎない
その為上書きすることや、同じ名前のローカル変数を作成する事が可能である
PSLはバーチャルマシン構築時に幾つかのglobal変数を自動的に登録する ##operation 演算時の型は左項に従う

a = 1;
b = "2str";

c = a + b; // 3
d = b + a; // 2str1
Clone this wiki locally