본문 바로가기

Android

Kotlin - lateinit,lazy

코틀린은 NULL을 허용하지않아 lateinit,lazy을 통해 초기화를 지연시킬 수 있다.

 

 

lateinit 예제

class Rectangle {
    lateinit var area: Area
    fun initArea(param: Area): Unit {
        this.area = param
    }
}

class Area(val value: Int)

fun main() {
    val rectangle = Rectangle()
    rectangle.initArea(Area(10))
    println(rectangle.area.value)
}

 

lazy 예제

val str:String by lazy{
        println("초기화")
        "hello"
}
 
println(str) // 초기화; hello
println(str) //hello

 

 

차이점

  lateinit lazy
변수 선언 var val
변수 대입 여러번 선언 가능 최초 1회

 

 

출처

https://beomseok95.tistory.com/89

 

Kotlin - null 가능성, lateinit ,lazy

Kotlin - null 가능성, lateinit, lazy null 가능성 기본적으로 객체를 불변으로 보고 null값을 허용하지 않습니다. null값을 호용하려면 별도의 연산자가 필요하고 null을 허용한 자료형을 사용할 때도 별도

beomseok95.tistory.com

https://victorywskim.tistory.com/7

 

코틀린(Kotlin) - lateinit ,lazy (늦은 초기화 방법)

코틀린은 기본적으로 NULL을 허용하지 않아서 무조건 값을 체워넣거나 명시적인 데이터의 입력 혹은 널 허용에 대해 고려해야 한다고 생각할수있으나 늦은 초기화를 통해 필요한 경우에만 값을

victorywskim.tistory.com

 

'Android' 카테고리의 다른 글

싱글톤 패턴  (0) 2021.07.21
FloatingActionButton 구현  (0) 2021.03.13
당겨서 새로고침 기능 추가하기  (0) 2021.01.23
Activity 생명주기  (0) 2021.01.21
안드로이드 4대 컴포넌트  (0) 2021.01.20