null로 명시적으로 초기화되는 변수 정의를 보고합니다.

var v: T = null에는 다음 세 가지 경우가 있습니다.

  1. voptional 값인 경우
    → 관용적이고 타입이 안전한 Option[T] 타입 사용
  2. v초기화되지 않은 값인 경우(값이 대입되어야 함)
    → 이니셜라이저로 명확하고 간결하며 플랫폼 독립적인 _(Scala 2) 또는 scala.compiletime.uninitialized(Scala 3) 사용
  3. 성능 최적화인 경우(실제로 null 값을 사용함)
    → 안전하지 않은 코드에 대한 검사를 명시적으로 억제함

다음 두 가지 빠른 수정이 제공됩니다.

예:


  class Test {
    var optional: String = null
    var uninit: String = null

    uninit = "initialized later"
  }

빠른 수정 적용 후:


  class Test {
    var optional: Option[String] = None
    var uninit: String = _

    uninit = "initialized later"
  }