728x90

- nullable

코틀린에서 null이 들어갈 수 있는 타입은 완전히 다르게 간주된다

null 값이 존재하는 타입의 경우 ?를 붙여 표현한다

// val str: String = null		// 컴파일 에러 발생
val str: String? = null

- Safe Call

null이 아닌 경우에만 호출

'?.' 를 통해 구현

fun main() {
    var str: String? = null
    //println(str.length)       // 실행 불가
    println(str?.length)        // Safe Call: null이 아닐 경우 실행. null일 경우 null 값 반환
}

- Elvis 연산자

null인 경우에만 호출

'?:' 를 통해 구현

fun startsWithA1(str: String?): Boolean {
    return str?.startsWith("A")
        ?: throw IllegalArgumentException("null이 들어왔습니다")
}

fun startWithA2(str: String?): Boolean? {
    return str?.startsWith("A")
}

fun startWithA3(str: String?): Boolean {
    return str?.startsWith("A") ?: false
}

- !! 연산자

null이 절대 아닐 때 사용

'!!' 를 통해 구현

fun startsWithA4(str: String?): Boolean {
    return str!!.startsWith("A")    // 절대 null이 아니라는 것을 명시할 때 !! 사용
}

 


https://github.com/tyakamyz/kotlin-study/blob/master/src/main/kotlin/section01/1_%EC%BD%94%ED%8B%80%EB%A6%B0%EC%97%90%EC%84%9C_%EB%B3%80%EC%88%98%EB%A5%BC_%EB%8B%A4%EB%A3%A8%EB%8A%94_%EB%B0%A9%EB%B2%95.kt

 

https://github.com/tyakamyz/kotlin-study/blob/master/src/main/kotlin/section01/2_%EC%BD%94%ED%8B%80%EB%A6%B0%EC%97%90%EC%84%9C_null%EC%9D%84_%EB%8B%A4%EB%A3%A8%EB%8A%94_%EB%B0%A9%EB%B2%95.kt

 

728x90
복사했습니다!