NotNull 특성이 사용되지 않으므로 클래스를 nullable로 선언 할 수있는 새로운 최선의 방법은 무엇입니까?스칼라에서 notnull의 클래스를 확인 하시겠습니까?
여전히 컴파일러 옵션이 있습니다 (누군가 다른 프로젝트에서 내 라이브러리를 잘못 사용하는 것을 방지하지 않음). 소수의 충돌하는 Java 주석과 함께 Scala 컴파일러가 존중할 것입니다.
NotNull 특성이 사용되지 않으므로 클래스를 nullable로 선언 할 수있는 새로운 최선의 방법은 무엇입니까?스칼라에서 notnull의 클래스를 확인 하시겠습니까?
여전히 컴파일러 옵션이 있습니다 (누군가 다른 프로젝트에서 내 라이브러리를 잘못 사용하는 것을 방지하지 않음). 소수의 충돌하는 Java 주석과 함께 Scala 컴파일러가 존중할 것입니다.
스칼라에서는 null
을 사용하지 않아야하며 그렇지 않으면 NotNull
특성을 사용할 필요가 없습니다.
"값 없음"을 가질 수있는 값 또는 변수가있는 경우 null
값 대신 Option
유형을 사용하십시오. Option
에는 Some
과 None
이라는 두 개의 하위 클래스가 있습니다.
// text is "None", which means it has no value
var text: Option[String] = None
// Use "Some" when it should have a value
text = Some("Hello World")
Option
에는 많은 유용한 방법이 있습니다. 그것은 (어느 정도) 제로 또는 하나의 요소를 가진 콜렉션으로 취급 될 수 있으므로, 콜렉션 메소드를 호출 할 수 있고 패턴 매칭과 함께 사용할 수 있습니다.
text match {
case Some(s) => println("Text: " + s)
case None => println("Empty")
}
Java에서 null을 사용하지 않습니다. 다른 사람들이 null을 사용하지 못하도록하고 싶습니다. – user833970
'null'을 사용하는 것은 관용적 인 스칼라가 아니기 때문에 일반적으로 스칼라 프로그래머는 'null'을 사용하지 않습니다. – Jesper
버그를 생성하는 것은 관용적이지 않습니다.하지만 스칼라가 여전히 발생합니다. –
ScalaDoc 및 소스 코드 (2.10.x 용)는 'NotNull'이 사용되지 않음을 나타냅니다. –
@RandallSchulz 2.11 이후에는 사용되지 않습니다 (아직 출시되지 않음). – Jesper