코틀린은 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
https://victorywskim.tistory.com/7
'Android' 카테고리의 다른 글
싱글톤 패턴 (0) | 2021.07.21 |
---|---|
FloatingActionButton 구현 (0) | 2021.03.13 |
당겨서 새로고침 기능 추가하기 (0) | 2021.01.23 |
Activity 생명주기 (0) | 2021.01.21 |
안드로이드 4대 컴포넌트 (0) | 2021.01.20 |