Единственное место, где я видел 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
для не соответствующих групп.