? (Nullable)
✔ 기본 변수는 모두 null이 입력되지 않음
✔ null 값을 입력하기 위해서는 변수를 선언할 때 뒤에 ?를 입력
[ 변수에 null 허용 설정하기 ]
var nullable: String?
nullable = null
var notNullable: String
notNullable = null // Error
[ 함수 파라미터에 null 허용 설정하기 ]
fun nullParameter(str: String?) {
if (str != null) {
var length2 = str.length
}
}
◽ 파라미터 str에 null이 허용되었기 때문에 함수 내부에서 null 체크를 하기 전에는 str를 사용할 수 없음
[ 함수의 리턴 타입에 null 허용 설정하기 ]
fun nullReturn(): String? {
return null
}
?. Safe Call : 안전하게 호출하기
✔ null 체크를 간결하게
✔ Nullable인 변수 다음에 ?.을 사용하면 해당 변수가 null인 경우 ?. 다음의 메서드나 프로퍼티를 호출하지 않음
fun testSafeCall(str: String?): Int? {
// str이 null이면 length를 체크하지 않고 null을 반환
var resultNull: Int? = str?.length
return resultNull;
}
?: Elvis Operator : Null 값 대체하기
✔ 원본 변수가 null일 때 넘겨줄 기본값 설정
fun testElvis(str: String?): Int {
// length 오른쪽에 ?:을 사용하면 null일 경우 ?: 오른쪽 값이 반환
var resultNonNull: Int = str?.length?:0
return resultNonNull;
}
'Kotlin' 카테고리의 다른 글
[Android] [Kotlin] 스코프 함수 (0) | 2021.08.30 |
---|---|
[Android] [Kotlin] 지연 초기화 (0) | 2021.08.30 |
[Android] [Kotlin] 설계 도구 (0) | 2021.08.30 |
[Android] [Kotlin] 클래스 (0) | 2021.08.30 |
[Android] [Kotlin] 함수 (0) | 2021.08.30 |