Kotlin의 널 세이프티 방법

1. Nullable과 Non-nullable 타입

// Non-nullable (null을 허용하지 않음)
var nonNullable: String = "Hello, Kotlin!"

// Nullable (null을 허용함)
var nullable: String? = null

예시 코드

fun main(){
    var s = Student()
    s.name = "참새"
    s.address = "서울"
    s.displayInfo()
}

class Student {
    lateinit var name:String
    var address:String? = null
    
    fun displayInfo() {
        println("이름은: ${name} 입니다")
        println("주소는: ${address} 입니다")
    }
}

2. Safe Call Operator (?.)

var nullable: String? = null 

// nullable이 null이면 length는 null
val length: Int? = nullable?.length

예시 코드

fun main(){
    var s = Student()
    s.name = "참새"
    s.displayAddressLength()
    /**
    출력값
    주소의 길이는: null 입니다
    */
    
    s.address = "서울"
    s.displayInfo()
    /**
    출력값
    이름은: 참새 입니다
    주소는: 서울 입니다
    */
}

class Student {
    lateinit var name:String
    var address:String? = null

    fun displayInfo() {
        println("이름은: ${name} 입니다")
        println("주소는: ${address} 입니다")
    }
    
    fun displayAddressLength() {
        println("주소의 길이는: ${address?.length} 입니다")
    }
}