공부/Kotlin

null 관련 연산자(안전 호출 연산자, 어설션 연산자, 엘비스 연산자)

데자와 맛있다 2022. 10. 29. 00:40

1. 안전 호출 연산자

  • ?. 이렇게 생겼다
  • null 가능한 변수 쓸때 그 앞에 ?. 를 붙여야 한다 아니면 에러남
fun main() {
    var favoriteActor: String? = "Sandra Oh"
    println(favoriteActor?.length)
}

?. 안하면 에러남 ,, mvvm패턴을 적용할때 뮤터블 라이브 데이터에서 값 변경할경우가 있는데 그때 ?. 를 붙여야함

null 불허용인 변수 뒤에도 ?. 를 붙여도 에러 안나고 되긴하는데 붙일 필요가 없음

 

2. 어설션 연산자

  • !!. 이렇게 생겼다
  • 얘도 null허용하는 변수 뒤에 붙이는건데 ?. 랑 다르게 ?. 는 변수에 null들어있으면 걍 null 주는데 
  •  

이렇게

  • !!. 얘는 null이 있으면 에러를 일으킴
  •  

위에 ?. 랑 비교해보세유

 

3. 엘비스 연산자

  • ?. 랑 같이 사용가능, 사실상 세트같음
  • ?. 가 null을 반환할때 기본값을 추가하는게 가능하도록 만듦
  • 변수가 null이면 ?: 앞의 표현식이 실행되고 아니면 ?:뒤 표현식 실행
  •  

null 아니라서 ?: 앞에 length나옴
null이라서 ?: 뒤에 기본값 0 이 lengthOfName에 들어감!

참고 사이트: https://developer.android.com/courses/android-basics-compose/course?hl=ko 

 

Compose 사용 시 알아야 하는 Android 기본사항 과정  |  Android Developers

Compose 사용 시 알아야 하는 Android 기본사항

developer.android.com