Box 編
これは、検討中の情報です。 現在は利用できません。
Nilable 型
前述している通り、 Generics の実型パラメータに nilable は指定できません。
この制限により、次の new Test( val )
はエラーになります。
// @lnsFront: skip
class Test<T> {
let val:T;
}
let val:int! = 1;
let test = new Test( val ); // error
このエラーを回避するには、 2 つのパターンがあります。
- T! を利用する
- Nilable 型を利用する
「T! を利用する」のケースでは、上記処理は次のように書けます。
// @lnsFront: skip
class Test<T> {
let val:T!; // <--- T! とする
}
let val:int! = 1;
let test = new Test( val );
ただこうすると、多くの場合は 非 nilable で良いケースでも nilable として宣言しなければならないため、 unwrap 処理が必須となってしまい面倒です。
そこで、 Nilable 型を利用します。
Nilable 型とは
Nilable 型は、 nilable の値をラッピングする型です。 Java で言うところの int に対する Integer クラスと思ってください。