# lateinit
[TIL] 231204 - Kotlin 지연초기화 lateinit, lazy
코틀린은 클래스를 설계할 때 안정성을 위해 변수의 값을 초기화 할 것을 권장한다.클래스를 설계할 때 초기값 정의가 난처해 나중에 대입하기 위한 문법이다.지연 초기화 또는 늦은 초기화를 위해 lateinit과 lazy 키워드를 사용한다.저사양으로 제한 되어 있는 환경에서
[Kotlin] lateinit vs lazy
예를 들어 변수 a를 사용할 예정이지만, a의 첫 상태를 정의하기 어려울 때 사용된다.a를 null로 초기화하는 방법도 있지만 kotlin에서는 null 사용을 지양한다.따라서, 늦은 초기화 기법을 위해 대표적으로 두 방법을 사용하고 있다.lateinit을 사용하여 v
[Kotlin] 변수 선언 - private, latent
읽기전용(immutable) 이다. 한번 초기화되면 다시 할당할 수 없다. 상수 선언 시 사용. lateinit var가변(mutable)변수 이다. 값을 다시 할당할 수 있다. var count = 10count = 20 // 다시 할당 가능나중에 초기화할 변수 선언
[AndroidRoadMap] Part 1. 개발 언어
- Kotlin과 Java - null safety - mutable vs immutable - lateinit var vs lazy delegation - extension - data/sealed/enum class - collection vs sequence
Kotlin lateinit var에 관하여
한창 지연 초기화 방법에 대해 공부하고 있었다. 그 중에서 lateinit var를 공부하던 중 생겨난 의문점들을 탐구한 과정을 적어보려한다.

코틀린 lateinit vs lazy
lateinit, 늦은 초기화 > 코틀린에서는 변수를 선언할때 객체를 바로 할당하지 않는 경우에 기본적으로 컴파일이 되지 않는다. 경우에 따라 변수만 일단 선언하고 늦게 초기화를 해야할때 lateinit 프로퍼티를 사용할 수 있다. lateinit은 일단 미리 변수를

코틀린 lateinit과 lazy의 차이점이란?
제목의 2가지는 변수를 늦게 초기화하는 방법들이다. 클래스 안에서 이 변수를 사용할 것이다 라고 선언만 해 놓고 나중에 해당 변수를 사용하는 시점에서 값을 입력해주어서 사용하는 것을 말합니다. 이것도 방법중 하나가 될 수 있습니다. 하지만 2가지 걸리는 상황이 있을 수
lateinit vs by lazy
개발하다 lateinit을 쓸 지, by lazy를 쓸 지 뭐가 맞는지 이야기가 나왔다.그래서 정리하는 글자 우선 이 코드를 보면 얘도 늦게 초기화 한다. a를생각해보면 kotlin은 nullsafe인데 왜 이렇게 코딩할까그래서 lateinit이나 by lazy를 사용
[Kotlin] lateinit, get(), set()
변수를 선언하고 나서 나중에 값을 넣으려 할 때 null로 넣어 놓는 경우가 있다. 하지만 나중엔 꼭 값을 넣어야 되지만 실수로 잊어버리면 error가 날 것이다.lateinit는 그걸 방지해준다. 즉 선언은 하지만 나중에 꼭 초기화를 할 거라고 알려준다. 그러지 않으
Kotlin 변수 : 상수, lateinit, lazy
var : 한번 할당 된 객체를 다른 객체로 변경하여 사용할 수 있다val : 한번 할당하면 변경할 수 없다 (단, 객체 내부 속성은 변경가능)상수 (const) : 컴파일 시점에 결정되어 절대 변경이 불가하다 (기본 자료형만 선언 가능)사용할 경우 Sample.CON

스코프 함수(scope function), Data Class, Lamda expression, lateinit vs lazy init, 인텐트(intent), Collection
📝 스코프 함수 (scope function), Data Class, Lamda expression, lateinit, lazy init, 인텐트(intent), Collection
Lateinit& By Lazy
늦은 초기화 lateinit 프로퍼티를 선언하지 않고 초기화를 미루는 방법이다. 전역 변수로 선언 후 null값을 지정하지 않고 초기화 할 수 있다. var를 이용한 경우에만 사용이 가능하다. User1의 lateData를 선언할때 초기값을 설정하지 않았다. 이것을 후에 user.lateData = "Hello" 를 통해서 사용한다. 이런것이 늦은 ...