Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 군대 github
- 군대에서 안드로이드 개발
- Compose
- REST API
- 군대개발
- 디버깅 오류
- Encoding
- BindingAdapter
- 네트워크
- android studio cloud
- 뷰 겹침
- 군대 깃허브
- android 오류
- Di
- okhttp
- 오류
- Status Bar
- 군대 개발
- kotlin
- interface
- Rest
- DataBinding
- text
- multipart
- intArray
- apollo
- Android
- Log잘림
- log
- RETROFIT
Archives
- Today
- Total
KDY
by lazy 와 lateinit의 차이 본문
안녕하세요.
이번에 포스팅할 내용은 많이들 사용하시는 by lazy 와 lateinit의 차이점에 대해 포스팅 할 것 입니다.
가장큰 차이점은
var 에서만 사용 가능한 late init
val 에서만 사용 가능한 by lazy 입니다.
위 차이점에서 알 수있듯 가장큰 차이점은 lateinit은 값을 언제나 바꿀수 있고 by lazy는 값을 변경할 수 없습니다.
lateInit
private lateinit var name : String
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
if(::name.isInitialized){
// 초기화 되었을때만 출력
println("저는 $name 입니다.")
}
}
만약 lateinit property has not been initialized 이런 오류가 난다면 lateinit 변수를 초기화 하지 않아 나는 오류 이므로 초기화를 시켜주면 오류가 해결됩니다!
lazy
private val name : String by lazy {
println("초기화 성공!")
"김대영"
}
println($name)
//결과 값
// 초기화 성공!
// 김대영
lazy 초기화는 기존 val 변수 선언에 by lazy를 추가함으로 lazy {}에 생성과 동시에 값을 초기화 하는 방법을 사용합니다.
'Kotlin' 카테고리의 다른 글
InterFace란? (0) | 2022.04.26 |
---|---|
Kotlin IntArray (0) | 2022.04.11 |