Option[T]
Scalaは、クラスの階層を提供します。これは、特に、Some[T] extends Option[T]
をNone extends Option[Nothing]
返すことができるJavaメソッド呼び出しをラップするのに役立つことがわかりました。null
val result = Option(someJavaMethodThatReturnsNull())
result
Javaメソッドがオブジェクトを返したか、を返したかに応じて、0個または1個のアイテムのシーケンスのように機能しますnull
。、などのOption
メソッドがあります。これらのメソッドは、シーケンスのメソッドと同じように使用でき、元のシーケンスが。の場合、または元のシーケンスがの場合は、新しいシーケンス()を返します。map
filter
Some
Some[T]
None
None
Clojure関数seq
も同様に動作するようです。xがnullでない場合、(seq x)
またはxがnullの場合、1つのアイテムのシーケンスになりnil
ます。この値は、Scalaメソッドと同じよう(map ...)
に、などに渡すことができます。(filter ...)
Option
私は何かが足りないのですか?このパターンは意味がありますか?これは「ユーレカ!」ですか 経験豊富なClojureプログラマーにとって明らかな瞬間ですか?