본문 바로가기

BackEnd/Kotlin

[Kotlin] Lec02. 코틀린에서 null을 다루는 방법

Kotlin에서의 null 체크

  • 코틀린에서는 NullPointerException을 방지하기 위해 일반적인 자료형은 null이 될 수 없도록 되어있다.
  • null을 허용하기 위해서는 자료형 뒤에 ? 를 붙여줘야 한다.
    fun startsWith(str: String?): Boolean {
    	if(str == null) {
        	throw IllegalArgumentException("값이 null 입니다.")
        }
        return str.startsWith("A")
    }​

Safe Call과 Elvis 연산자

  • safeCall : null이 아니면 실행되고, null이면 실행하지 않는다.
    fun startsWidthA1(str: String?):Boolean? {
        // safe Call 연산자를 사용
        return str?.startsWith("A")
    }​
  • Elvis : 앞의 연산 결과가 null이면 뒤의 값을 사용한다.
    val str: String? = "ABC"
    str?.length ?: 0
  • safeCall과 Elvis 연산자를 혼합해서 사용할 수도 있다.
    fun startsWith(str: String?): Boolean {
    	return str?.startsWith("A") ?: false
    }
  • Elvis 연산은 early return에도 사용할 수 있다.
    fun calculate(number: Long?): Long {
    	number ?: return 0
    }​

 널 아님 단언 !!(not-null assertion)

  • nullable type이지만, 널이 될 수 없는 경우 !! 를 명시해 준다. 
  • 주의할 점은 널 아님을 단언 후 !! 지정한 값에 null이 들어갈 경우 NullPointException이 발생한다.
  • 개발자가 논리적으로 절대 null이 발생할 수 없는 상황을 제외하고서는 선언하지 않는 편이 좋다.
    fun startsWith(str : String?) Boolean {
    	// 널아님단언(!!) : str은 null이 아님을 알린다
        return str!!.startsWith("A")
    }​

 

 

 

 

 

 

 

'BackEnd > Kotlin' 카테고리의 다른 글

[Kotlin] Lec01. 코틀린에서 변수를 다루는 방법  (0) 2024.02.21