Til. kotlin null safty 안전한 호출 연산자, 엘비스 연산자, null 아님 단언
NullPointerException은 코틀린으로 개발을 하다보면 흔하게 볼 수 있는 오류이다.
Null이 될 수 있는 값을 안전하게 처리하는 방법
1. 안전한 호출 연산자 ?.
?.은 null 검사와 메서드 호출을 한번의 연산으로 수행한다.
호출하려는 값이 null이 아니라면 ?. 일반 메서드 호출처럼 작동하며, 호출하려는 값이 null이면 이 호출은 무시되고 null이 결과 값이 된다.
s?.toUpperCase()
// 위의 코드는 아래의 코드와 같다.
if(s != null) s.toUpperCase() else null
2. 엘비스 연산자 ?:
엘비스 연산자는 이항 연산자로 좌항을 계산한 값이 널인지 검사한다. 좌항 값이 null이 아니면 좌항 값을 결과로 하고, 좌항 값이 null이면 우항 값을 결과로 한다.
fun foo(s: String?) {
val t: String = s ?: "" // s가 null 이면 결과는 ""(빈문자열) 이다.
}
엘비스 연산자를 객체가 null인 경우 null을 반환하는 안전한 호출 연산자와 함께 사용해서 객체가 null인 경우에 대비한 값을 지정하는 경우가 많다.
fun Person.countryName() = company?.address?.country ?: "Unknown"
3. null 아님 단언 !!
널 아닌 단언(not-null assertion)은 null이 될 수 잇는 타입의 값을 null이 될 수 없는 타입으로 강제로 바꿀 수 있다.
fun ignoreNulls(s: String?) {
val sNotNull : String = s!! // 예외가 발생하는 지점, 아래의 null
println(sNotNull.length) // 위에 !!가 있는 지점에서 발생한다는 점에 유의해야 한다.
}
Author And Source
이 문제에 관하여(Til. kotlin null safty 안전한 호출 연산자, 엘비스 연산자, null 아님 단언), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jonmad/Til.-kotlin-null-safty-안전한-호출-연산자-엘비스-연산자-null-아님-단언저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)