[kotlin] 코틀린에서의 널 비교 연산과 논리 연산

코틀린은 널 안전성(null safety)을 가진 프로그래밍 언어로, 널 포인터 예외를 방지하기 위한 다양한 기능을 제공합니다. 널 포인터 예외를 방지하기 위해서 코틀린에서는 널(null)을 명시적으로 다루는 방법과 안전한 연산자를 제공합니다.

널 비교 연산자

==!= 는 널을 처리하는 데 있어 특별한 기능을 합니다.

val a: String? = "Hello"
val b: String? = null

println(a == b)   // false
println(a != b)   // true

위의 예제에서 == 연산은 ab가 같은지 비교합니다. 하지만 a는 널이 아닌 “Hello”이고 b는 널이므로 false를 반환합니다. 반면에 != 연산은 ab가 다른지 비교합니다. 따라서 true를 반환합니다.

안전한 호출 연산자

안전한 호출 연산자 ?. 는 메소드 호출과 프로퍼티 접근 시, 해당 대상이 널이 아닌 경우에만 작동합니다.

val str: String? = null
println(str?.length)  // null

위의 코드를 보면 str이 널이므로 str.length가 아닌 null을 반환합니다.

엘비스 연산자

엘비스 연산자 ?: 는 널일 경우 대체 값을 지정할 수 있습니다.

val nullableStr: String? = null
val result: String = nullableStr ?: "Default Value"
println(result)  // Default Value

nullableStr이 널일 경우 result는 “Default Value”로 설정됩니다.

코틀린은 간결하고 안전한 널 처리를 위한 다양한 방법을 제공하여 프로그래밍 작업을 보다 쉽고 안정적으로 만들어 줍니다.

참고 자료