안드로이드, 안전 호출 연산자와 앨비스 연산자 – @Composable/Android
코틀린에서는 해당하는 값이 있을 경우와 없을 경우의 처리를 안전 호출 연산자와 앨비스 연산자를 활용하여 쉽게 처리할 수 있다.
val data = null
여기서 data 값이 null이 아닌 경우에만 특정 로직을 실행하기 위해서는 let을 사용하면 된다.
data?.let { ... }
이어서 null인 경우에 또다른 로직을 실행하고 싶다면, 앨비스 연산자(?:)와 함께 run을 사용하면 된다.
data?.let { ... } ?: run {...}
let과 run의 차이는 서로 거의 대부분 동일한 로직을 만들어낼 수 있다.
하지만 let은 it 키워드를 사용하여 중간 결과를 사용할 수 있고, run은 this를 사용하여 상위 객체를 참조할 수 있다는 차이가 있다.
따라서, null 체크와 동반한 로직은 let을 사용하며, 그렇지 않다면 run을 사용한다.