반응형
나중에 초기화
나중에 초기화란 프로퍼티 초기화를 나중에 한다는 뜻이다
lateinit
lateinit의 경우에는 값이 변경될 수 있으므로 var을 사용해야 합니다.프로퍼티를 초기화하기 전에 프로퍼티에 접근하면 "lateinit property text has not been initialized"라는 예외가 발생합니다.
lateinit을 사용하여 text 변수를 선언하고 이후에 초기화를 해주었다.
fun main() {
lateinit var text: String
val result1 = "안녕하세요"
text = "Result : $result1"
println(text)
* Primitive Type (Int, Float, Double, Long 등) 에는 사용할 수 없다.
지연 초기화
객체의 일부분을 초기화하지 않고 남겨뒀다가 그 부분의 값이 필요한 경우 초기화합니다
by lazy
초기화 과정에 자원을 많이 사용하거나 객체를 사용할 때마다 초기화하지 않아도 되는 프로퍼티에 대해 지연 초기화을 사용할 수 있습니다
fun main() {
lateinit var text: String
val textlength: Int by lazy {
println("문장의 길이")
text.length
}
text = "안녕하세요"
println(textlength)
println(textlength)
}
//"문장의 길이"//
// 5 //
// 5 //
text가 초기화 한 후 text.length속성을 사용하여 textlength라는 변수를 초기화 합니다
by lazy는 val을 사용해야 합니다
반응형
'Kotlin' 카테고리의 다른 글
Kotlin in Action 3장 (0) | 2023.03.06 |
---|---|
Kotlin in Action 2장 (0) | 2023.02.22 |
Kotlin in Action 1장 (0) | 2023.01.12 |