상세 컨텐츠

본문 제목

[Kotlin] latinit, layzy

프로그래밍

by 독서와 여행 2021. 4. 1. 20:19

본문

class Person{
    lateinit var name: String
}

fun main()
{
    val kildong = Person()
    kildong.name = "Kildong"
}

 

lateinit을 이용하면 지연 초기화를 할 수 있다. 

 

지연 초기화 하면 저렇게 kildong을 입력해 줄 때 초기화가 된다.

 

대신 var로 선언된 프로퍼티만 가능

 

val 을 사용하고 싶을 때는 lazy를 이용하면 된다.

 

class LazyTest{
    val subject by lazy{
        println("Lazy")
    }
    fun flow(){
        println("Not yet")
        println("subject : one : $subject") // 최초 초기화 시점 $subject에 의해 처음으로 subject 접근
    }
}

fun main(){
    val test = LazyTest() // 초기화 안됨
    test.flow()
}

 

처음으로 subject에 접근 하면 최기화가 된다!

관련글 더보기

댓글 영역