티스토리 뷰

728x90
반응형

lateinit vs lazy




Kotlin 에서 초기화 지연 방식 두 가지를 지원한다



lateinit



public class Test { lateinit var mock: Mock @SetUp fun setup() { mock = Mock() } @Test fun test() { mock.do() } }




 lazy



public class Example{ val name: String by lazy { “Amit Shekhar” } }





언제, 어느것을 사용할지 선택하는 방법



 - lazy 는 val 속성에만 사용할 수 있지만, lateinit 은 최종 필드로 컴파일 할 수 없기 때문에 vars 에만 적용 할 수 있으므로 불변성을 보장 할 수 없다.

 - lateinit var 는 객체가 보이는 곳이라면 어디서든 초기화 될 수 있다. 외부에서 미리 알려지지 않은 방식으로 속성을 초기화 하려면 lateinit 을 사용하는 것이 좋다.




+ References


https://blog.mindorks.com/learn-kotlin-lateinit-vs-lazy



반응형

'프로그래밍 > Kotlin' 카테고리의 다른 글

[Kotlin] lateinit var is initialized  (0) 2018.08.25
[Kotlin] Kotlin 의 특수기호  (0) 2018.08.25
[Kotlin] 배열에서 초기화  (0) 2018.08.10
[Kotlin] Convert a char to int  (0) 2018.08.10
[Kotlin] Collections 초기화  (0) 2018.08.10
공지사항
최근에 올라온 글