関数の実行中は、次の簡単なコードを使用します。
match{
case Some(one)=>one.copy()
case Type =>
...
case _ =>
}
Nothing はすべての型のサブタイプであり、Nothing にはコピー機能がないため、エラーが発生します。
一致ケースフェーズを使用して、Nothing と Null Type の一致を削除する方法を知っている人はいますか?
最初に注意すべきことは、のインスタンスはNothing
存在しないため、一致が の値を取得する状況になることは決してないということですNothing
。
とはいえ、一般的なケースでは、最も明白な方法は、最初にケースを提供することです。ケースは順番にテストおよび実行されるため、問題が発生するケースの前にそれらを追加すると、必要な動作が得られます。
??? match {
case null => ???
case Some(one) => one.copy()
case Type =>
...
case _ => ???
}
明らかに、型の主なポイントの 1 つは、チェックOption
の必要性を回避することです。null
変数にanull
が含まれる場合はOption
、そうならないようにコードを変更する価値があります。