지연 초기화
클래스 설계할 때 초기의 값을 정의하기 난처하거나 저사양으로 제한되어있는 환경에서 메모리를 효율적으로 사용하려고 할 때 주로 사용된다.
lateinit var 변수명 : 타입
.isInitialized를 통해 값이 초기화되었는지 boolean형태인 true/false로 초기화 여부를알 수 있다.
사용할 때는 값이 아니라 참조형태로 사용해야하기 때문에 this::을 붙인다
if(this::변수명.isInitialized) {
}
val 상수명 by lazy {}
lateinit var 변수명 : 변수타입
val 상수명 by lazy {초기화}
Null Safety
Null Exception
var 변수명:String? = null // ? 변수가 null일 수 있을 때 null을 갖을 수 있게끔 해준다.
${변수명?.length} // ?. 변수가 null이 아니라면 length를 반환하고 null일 경우 null을 반환한다.
${변수명?.length ?: "초기화하세요"} // ?: 앨비스 연산자 null 일 경우 뒤에 문장 실행
'Kotlin' 카테고리의 다른 글
Kotlin 문자열 숫자 변환 기능 + 2개 이상의 값 리턴 (0) | 2023.11.27 |
---|---|
Kotlin 람다식 메서드 정의 (0) | 2023.11.27 |
Kotlin 예외 처리 (try-catch, throw) (0) | 2023.11.27 |
Kotlin 접근제한자 (0) | 2023.11.27 |
Kotlin 상속, 오버라이딩, 오버로드, 인터페이스 (0) | 2023.11.27 |