YSHUSH

Lazy 본문

Coding/Kotlin

Lazy

코딩; 2022. 1. 26. 08:32

lazy는 느긋한 계산법이라는 뜻으로

필요한 때(호출될 때)까지 계산을 늦추는 기법이다.

fun main(args: Array<String>) {

    val lazyTest = LazyTest()   // (1)
    lazyTest.flow()             // (3)
}

// lateinit

class LazyTest{
    init {
        println("init block")   // (2)
    }
    val subject by lazy {
        println("lazy initialized")         // (6)
        "subject value"                     // (7)
    }
    fun flow(){
        println("subject not initialized")  // (4)
        println("subject: $subject")        // (5) -> 최초 초기화
    }
}

println("subject: $subject")를 지우면 subject가 호출이 안된다.

 

(1) 객체생성

(2)

(3) lazy때문에 순서가 넘어가고 flow를 호출

(4) 호출됨

(5) ★최초 초기화가 이루어짐 - subject호출

(6) 호출됨

(7)

 

결과값

init block
subject not initialized
lazy initialized
subject: subject value

 

'Coding > Kotlin' 카테고리의 다른 글

상속  (0) 2022.01.27
가위바위보 게임  (0) 2022.01.26
Getter & Setter  (0) 2022.01.26
보조 생성자  (0) 2022.01.26
접근지정자  (0) 2022.01.26