Option
의 공장 방법은 null
을 None
:
scala> implicit def nullable2Option[T >: Null](t: T): Option[T] = if (t == null) None else Some(t)
warning: there were 1 feature warnings; re-run with -feature for details
nullable2Option: [T >: Null](t: T)Option[T]
scala> val os2: Option[String] = "foo"
os2: Option[String] = Some(foo)
scala> val nullS: String = null
nullS: String = null
scala> val os3: Option[String] = nullS
os3: Option[String] = None
: 당신은 신중하게 그 범위를 제한 할 경우, 암시 적 변환을 사용할 수 있습니다
내가 질문을 오해 할 수
...
scala> val os1: Option[String] = Option(null)
os1: Option[String] = None
부록 컴파일러가 nullabl 값을 연결하려고 시도 할 때 사용할 수있는 유형 정보가있을 때마다이 작업이 수행됩니다 e 유형을 Option
으로 변경하십시오. 예를 들어 메소드를 호출 할 때 (유형이 항상 명시적인 경우). 당신이 새로운 유형의 도입 수보다 쉽게 일을하기 위해
어쩌면을 (옵션) 모나드. –