Kotlin3 [Kotlin] Kotlin의 Null 안전성 완전 정리: ?, !!, ?: 그리고 Java Optional과의 차이 코틀린의 ?, !!, ?:는 왜 필요할까?자바와 비교해 보는 Null 안정성 설계1. 코틀린의 ?, !!, ?: 연산자는 무엇이고 왜 쓰는가?코틀린은 NullPointerException(NPE)을 방지하기 위해 설계 단계에서부터 null 처리를 강제한다.이를 위해 대표적으로 다음 세 가지 연산자를 제공한다.? : null이 될 수 있는 타입을 선언할 때 사용한다. 예: String?!! : null이 아님을 단언할 때 사용한다. null이면 런타임 예외가 발생한다.?: : null일 경우 대체 값을 제공할 때 사용한다. 엘비스 연산자라고도 불린다.2. 실제 예시로 이해하기var name: String? = nullprintln(name?.length) // null 안전 접근 → 출력: nul.. Kotlin 2025. 9. 3. [Kotlin] lateinit vs lazy 정리 Kotlin에서는 변수를 나중에 초기화하는 방법으로 lateinit과 lazy를 사용할 수 있다. 둘 다 선언 시 즉시 초기화하지 않고 나중에 값을 설정하거나 계산할 때 사용하지만, 용도와 동작 방식이 다르다. 1. lateinit개념초기화 지연 변수(Delayed Initialization)주로 var(가변 변수)에 사용null을 사용하지 않고 늦게 초기화할 수 있도록 해준다.특징nullable을 피할 수 있음 (var str: String? = null 대신 lateinit var str: String)초기화를 보장하지 않으면 런타임 에러 발생 (UninitializedPropertyAccessException)기본 타입(Int, Boolean 등)에는 사용 불가→ non-null 객체 타입에서만 .. Kotlin 2025. 5. 12. [Kotlin] for문 안에서 인덱스 조정 에러, 해결법 코를린으로 간단한 for 반복문 코드를 짜다가 에러가 발생했다. 더보기 val cannot be reassigned 필자) 문제가 발생한 부분 for (i in 0 until n) { if( condition ) { answer[i] = start + i i++ //val cannot be reassigned 에러 발생 } } 다른 유저) https://stackoverflow.com/questions/63323769/how-to-increment-a-val-in-for-loop-in-kotlin-when-a-statement-is-true Kotlin 2023. 3. 22. 이전 1 다음