이 포스팅은 고돈호 님의 이것이 안드로이드다 with 코틀린(한빛미디어)을 기반으로 작성되었습니다.

코틀린의 경우 다른 언어에서 지원하는 null 이상의 것을 제공한다. 아래의 것들을 통해 알아보자.

 

1. null값 허용 '?'

코틀린은 기본적으로 다른 언어와 달리 기본 변수에 null을 집어넣을 수 없다. 따라서 null을 입력하기 위해서는 '?'를 붙여줘야 한다. 사용법은 다음과 같다.

var variable: String?

예시 코드는 다음과 같다.

var nullVariable: String? // 변수 nullVariable에 null 초기화 허용
nullVariable = null
        
var notNullVariable: String // null 초기화 불가능
notNullVariable = null // null 입력 불가능

2. 함수의 매개변수로 null값 허용

함수 역시 매개변수로 null값을 허용해주기 위해 '?'를 넣어주어야 한다. 예시 코드는 다음과 같다.

fun nullParameter(str: String?) {
    if(str != null) {
        var length2 = str.length
    }
}

3. 함수의 리턴 타입에 null값 허용

return 타입에도 '?'를 붙여 return type을 null을 허용할 수 있다. 예시 코드는 다음과 같다.

fun nullReturn(): String? {
    return null
}

4. Safe call '?.'

'?.'를 이용하여 안전한 호출을 사용할 수 있다. 예시 코드는 다음과 같다.

fun safeCall(str: String?): Int? {
    var resultNull: Int? = str?.length
    return resultNull
}

?. 가 있으면 앞에 변수가 null이면 ?. 뒤를 실행하지 않는다. 즉 str이 null이면 이 예시에서는 길이를 반환하지 않는다. 


5. Null값 대체하기 '?:' - Elvis Operator

fun elvisFunction(str: String?): Int {
    var resultNotNull: Int = str?.length?:0
    return resultNotNull
 }

?: 가 있으면 ?. 앞의 변수가 null일 경우 ?:를 반환한다. 즉 str이 null이면 이 예시에서는 0을 반환한다.

 

'안드로이드 앱 개발' 카테고리의 다른 글

9. 지연 초기화  (0) 2021.12.23
7. 클래스  (0) 2021.12.21
6. 함수  (0) 2021.12.20
5. 반복문  (0) 2021.12.19
4. 배열과 컬렉션  (0) 2021.12.14

+ Recent posts