標準ライブラリが完全に無料であるかどうか、そうでない場合は、インスタンスを返すよりも返す方が望ましいnull
合理的なユースケースが存在するかどうかに関心があるのではないかと思います。null
Option
3 に答える
5
null
標準ライブラリで使用されているのは、オプションの正規表現グループだけです。
scala> val number = """(\d+)(\.\d+)?""".r // matches digits optionally followed by a . and more digits
number: scala.util.matching.Regex = (\d+)(\.\d+)?
scala> "12" match {
| case number(intPart, decimalPart) => (intPart, decimalPart)
| }
res0: (String, String) = (12,null)
Option[String]
ここでの理由は、すべてのグループに使用したくないということだと思います。これにより、グループがオプションでない場合、コードが不必要に不器用になります。残念ながら、グループがオプションであるかどうかはコンパイル時にわかりません。つまりOption[String]
、すべてのグループまたはnull
一致しないグループのいずれかです。
于 2011-05-30T22:26:49.263 に答える
5
NamespaceBindingは、ローカル名前空間を返すnull
か、次の場合は未定義の入力を返します。
$ scala
Welcome to Scala version 2.9.0.1 (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_24).
Type in expressions to have them evaluated.
Type :help for more information.
scala> (<foo/>).scope.getURI("something")
res0: String = null
String
の代わりに使用している理由Option[URI]
はわかりません。
于 2011-05-30T22:42:21.717 に答える
-1
私は何も考えられないので、APIでグーグル検索を行い(inurl:scala-lang.org/api return + null)、それはnullの文書化された使用をもたらさなかったようです。
内部使用が存在する可能性があります。それを行うために私が考えることができる唯一の理由は、余分なSome-objectを回避するか、Javaと簡単に統合することです。どちらもありそうもないようです。
于 2011-05-30T22:03:09.773 に答える