参照型

リファレンス

配列です。リファレンスかリストで参照されているものを参照できます。参照先の型名の前に/をつけるとリードオンリーになります。

^int a.new(10); // 10個分のintの配列を作る
a = a[1..9]; // 2番目から9番目までにスライスする
a.new(0); // 新しく0個分の配列を作る
          // ただし長さが0の配列はミューテックスを持たない
ref c = a; // 動的型のリファレンス。参照型を指す参照型は代入できない
int id = c.typeid;       // typeidof(int)と同じ値
index size = c.typesize; // sizeof(int)と同じ値
c.cast(a=); // 静的型にキャストする。動的型のまま操作することはできない
            // キャストできなかった場合はfalseを返す

リスト

後ろに追加できる配列です。リストで参照されているものを参照できます。

%int a.new(10); // 後ろに追加できる10個分のintの配列を作る
a.new[10] = 0; // 長さを11にして、11番目に0を代入
a.new[-1] = 0; // 長さを1つ増やして、最後の要素に0を代入
a.new[-2] = 0; // 長さを2つ増やして、最後から2番目の要素に0を代入
a .= 0;        // 後ろに0を付け加える
a .= a[0..2];  // 後ろに1番目から2番目の要素を付け加える
%int b = a; // aと同じものを参照する
            // ただし長さが0のリストを代入するのはb.new(0)と同じ意味
list c = a; // 動的型のリスト。使い方は動的型のリファレンスと同じ