티스토리 뷰
728x90
Null
• 상태를 모름, 존재하지 않음.
• 0과는 다르다.
- 0 : 두루마리 휴지에서 심지만 남은 상태
- null : 두루마리 휴지가 없음
• null을 대상으로는 산술 연산(+, -, *, / 등)을 할 수 없다.
Null을 표현하는 방법
1. non-null 타입
• 흔히 우리가 알고 있는 자료형
• Int, String 등
2. nullable 타입
• 흔히 우리가 알고 있는 자료형에 ?를 붙임
• Int?, String? 등 -> 정수 or null, 문자열 or null
var num: Int? = null // null이 들어갈 수 있는 변수. nullable 이라고 한다. nullable int.
var num2: Int = null // 오류 발생 : null이 들어갈 수 없는 변수. non-null 이라고 한다. non-null int.
Nullsafety
• 코틀린의 가장 큰 특징 중 하나
• nullsafety 글에서 제대로 다룸.
Null의 연산
• null을 대상으로는 산술 연산(+, -, *, / 등)을 할 수 없다.
• 따라서 nullable 자료형 변수를 산술 연산하기 위해선 해당 변수가 null이 아님을 보장해줘야 한다.
- 단순히 (nullable 자료형) + (nullable 자료형) 하면 오류 발생
- 변수명!!을 통해 해당 변수가 null이 아님을 개발자가 코틀린에게 보장하므로써 코틀린이 오류를 띄우지 않는다.
var num1: Int? = 3 + 5
var num2: Int? = 10
// 여러 줄의 코드
// 여러 줄의 코드
// 여러 줄의 코드
var num3: Int? = num1 + num2 // 오류 발생 : 여러 줄의 코드를 진행하면서 num1, num2가 Int일지 null일지 보장할 수 없기 때문에 연산이 안 되고 오류 발생.
var num4: Int? = num1!! + num2!! // !!를 하면 null이 아님을 개발자가 보장.
• null인데 !!를 쓴다면 NullPointerException 오류가 발생한다.
num3 = null // null인데 !!를 쓴다면?
num5 = num3!! + num4!! // 오류 발생 : NullPointerException
• 비교 연산은 가능하다.
var num5: Int? = null
if (num5 == null) {
println("num5는 null입니다.")
} else {
println(num5)
}
이 글은
패스트 캠퍼스 Android 앱 개발의 정석 with Kotlin 올인원 패키지 Online
강의를 듣고 공부한 내용을 바탕으로 작성되었습니다.
728x90
'📱 Android > 💻 Kotlin' 카테고리의 다른 글
[Android/Kotlin] 6. 흐름 제어 (1) | 2022.10.04 |
---|---|
[Android/Kotlin] 5. 함수 (0) | 2022.10.04 |
[Android/Kotlin] 4. 연산자 (1) | 2022.09.30 |
[Android/Kotlin] 2. 자료형 (2) | 2022.09.30 |
[Android/Kotlin] 1. 변수 (0) | 2022.09.29 |
댓글
공지사항