반응형

null(?)

  • 코틀린에서 null 값을 허용하기위해 자료형 오른쪽에 ? 기호를 붙여주면 null값을 허용함.
  • !! : null허용 자료형을 허용하지 않는 자료형에 넣을때 사용
val a: String //에러! 초기화를 해줘야합
val b: String = null //에러! 코틀린은 기본적으로 null을 허용하지 않음.
val c: String? = null //OK
 
//!! : null허용 자료형을 허용하지 않는 자료형에 넣을때 사용
val name: String? = "Joy"
val name2: String? = name //OK
val name3: String = name //ERROR
val name4: String = name!! //OK
 
//안전한 호출(?)
val str: String? = null
var upperCase = if (str != null) str else null //null
upperCase = str?.toUpperCase() //null

//엘비스 연산자(?:)
upperCase = str?.toUpperCase() ?: "str이 null입니다"

 

lateinit

  • 먼저 선언하고 뒤에 초기화를 하겠다고 선언
  • var 변수만 가능, null 초기화 되지않음, 초기화전에 사용 못함
  • Int, Long, Double, Float 에서 사용불가
lateinit var str: String
str = "Hi Joy"
println(str)

 

lazy

  • String자료형을 첫회 사용시 초기화루틴 진입
val str: String by lazy {
    println("초기화")
    "Hi Joy" //
}
println(str) // 초기화, Hi Joy
println(str) // Hi Joy
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기