[kotlin] 코틀린에서의 옵셔널 값 처리
코틀린은 널 안전성을 강조하는 언어로, 옵셔널 값을 처리하는 다양한 방법을 제공합니다. 이 포스트에서는 코틀린에서 옵셔널 값을 다루는 방법에 대해 알아보겠습니다.
1. 널 가능 타입
코틀린은 기본적으로 모든 변수가 널이 될 수 있는 타입으로 선언됩니다. 이를 나타내기 위해 ?
를 사용할 수 있습니다.
val name: String? = null
위의 예시에서 name
은 널이 될 수 있는 문자열 타입으로 선언되었습니다.
2. 안전 호출 연산자 (?.
)
코틀린에서는 옵셔널 값에 접근할 때 안전 호출 연산자 ?.
를 사용하여 널 체크를 수행할 수 있습니다.
val length: Int? = name?.length
위의 예시에서 name
이 널이 아닌 경우에만 length
에 문자열 길이가 할당됩니다.
3. 엘비스 연산자 (?:
)
옵셔널 값이 널인 경우에 대체 값을 지정하려면 엘비스 연산자 ?:
를 사용할 수 있습니다.
val len: Int = length ?: -1
위의 예시에서 length
가 널인 경우에 -1
이 len
에 할당됩니다.
4. 안전한 형변환 (as?
)
옵셔널 값에서 안전하게 타입을 변환하려면 as?
를 사용할 수 있습니다.
val str: String? = "Hello"
val upper: String = str as? String ?: ""
as?
연산자를 통해 안전하게 문자열로 변환하고, 널일 경우에는 빈 문자열이 할당됩니다.
5. 널 체크 및 연산 수행 (let
)
옵셔널 값이 널이 아닌 경우에 코드를 실행하려면 let
함수를 사용할 수 있습니다.
val userName: String? = getUser()
userName?.let {
println("Welcome, $it")
}
userName
이 널이 아닌 경우에만 let
함수 내의 코드가 실행됩니다.
결론
코틀린은 널 안전성을 고려하여 옵셔널 값을 처리하는 다양한 방법을 제공합니다. 안전한 코드를 작성하기 위해 옵셔널 값 처리에 대해 숙지하는 것이 중요합니다.
이 포스트는 코틀린에서의 옵셔널 값 처리에 대해 알아보았습니다. 향후 코틀린 프로젝트를 진행할 때 옵셔널 값 처리에 유용하게 활용할 수 있을 것입니다.