公開技術情報

[English] [Japanese]

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 クラスと思ってください。