型指定をどうするか
型指定を望む人は多いと思われるので、xtalには型指定を入れようと思っています。ただ、入れるとしても実行時に型チェックを入れるぐらいのサポートになりそうで、本当にそんなのを入れる価値があるか悩んでます。
型指定の文法はC言語と同じようにする予定です。
Int value = foo(); // 実行時に value is Intがtrueになるかチェックが入る。
型指定の部分は式を置くことができるので、C++でいうテンプレート、JavaでいうGenericsのような記述も可能になる予定です。
// 要素の型チェックをする配列 TArray: fun(Type){ return class(Array){ // 普通のArrayを継承する push_back: method(Type value){ // 型チェックをするpush_back return Array::push_back(value); } } } IntArray: TArray(Int); // Int専用配列 iary: IntArray(); iary.push_back(10); // Good! iary.push_back(10.5); // Bad!
うーん、とりあえず入れてみるか…。