私が理解しているようにnull
、Scala での使用は避けるべきです。また、一部のフィールドが「値なし」を持つことが論理的に有効でない場合は、 s の使いOption
すぎを避けるために使用しないでくださいOption
。
それでは、コードを見てみましょう。授業がある
case class User (name: String)
name
そして、フィールドが であってはならないことnull
を100% 確信していString
ますOption[String]
。
問題は、一部の標準 Scala メソッドが me に返されることですOption
。(私の場合、IterableLike#find
メソッドは Option を返します)
問題は、ラップされUser
たときにインスタンスを作成する方法です。少し明確にするために、これはコードです:name
Option
val userName: Option[String] = myList.find(...)
val user = User(userName.get) // or may be I should use userName.orNull ? or throw exception?
Option.get
それはエレガントな解決策ではないと聞きました。orNull
方法は とほぼ同じget
です。