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
- webpack
- Spring
- 스타일보험
- 버전일치
- java
- 코틀린
- Spinner
- java#왕초보
- sub query
- SQL
- 안드로이드
- 게시판
- 오버라이드
- Android
- 미니게임
- 상속
- 쿠키
- snowpack
- 스프링
- 함수
- degit
- 숫자
- parcel
- React
- git
- FIle
- 왕초보
- 답글
- 시큐어코딩
- kotlin
Archives
- Today
- Total
YSHUSH
Lazy 본문
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