티스토리 뷰

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
댓글
공지사항