코틀린은 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 |