728x90
코틀린에는 엘비스 연산자가 있다. null을 체크하고, 결과를 리턴해준다.
var birthday = readLine()?.toIntOrNull()?:1
이렇게 ?: 를 활용해서 값을 리턴하는 방식이다.
?:의 왼쪽 값이 null일 경우 ?:의 오른쪽에 있는 값을 리턴해준다.
위의 코드를 예시로 들면 readLine()?.toIntOrNull의 값, 즉 입력받은 값이 null일 경우 1을 리턴하고
null이 아닐경우 원래 값을 리턴한다.
아래와 같은 예시가 있다.
fun main(){
var nullTest: Int? = 3
if (nullTest == null){
println(0)
}else{
println(nullTest+1)
}
}
if와 else를 사용하여 입력값이 null일 경우를 체크해준다.
null일 경우 0을 출력하고, null이 아닐경우 입력값에 1을 더한 값을 출력시켜 준다.
위와 같은 코드를 방금 배운 앨비스 연산자를 활용해서 바꿔보자.
fun main(){
var nullTest: Int? = 3
println(nullTest?.inc()?:0)
}
훨씬 간단하다!
엘비스 연산자는 불필요한 코드를 줄여줘서 가독성은 높여준다.
오히려 남용하면 코드의 가독성이 떨어질 수 있기 때문에 적절히 쓰자
728x90