TIL/selfpractice

null safety

crablo 2024. 1. 17. 15:50
728x90
Kotlin에서 지정하는 기본 변수는 모두 null이 입력되지 않는다.
null 값을 입력하기 위해서는 변수를 선언할 때 타입 뒤에 ?(Nullable, 물음표)를 입력한다.
 
 

var variable: String?

변수에 null 허용 설정하기

변수의 타입뒤에 ?를 붙이지 않으면 null 값을 입력할 수 없다.
 
 

함수 파라미터에 null 허용 설정하기

파라미터 널허용시 널체크 필수

 

함수의 리턴 타입에 null 허용 설정하기

함수의 리턴 타입에도 물음표를 붙여서 null 허용 여부를 설정할 수 있다.

 

return 값에 null 허용시

안전한 호출: ?.

변수를 Nullable로 만들기 위해서 물음표를 사용함.

Nullable인 변수 다음에 ?.을 사용하면 해당 변수가 null일 경우 ?. 다음의 메서드나 프로퍼티를 호출하지 않음

다음 코드에서처럼 문자열의 길이를 반환하는 length 프로퍼티를 호출했는데 str 변수 자체가 null일 경우 length 프로퍼티를 호출하지 않고 바로 null을 반환함.

 

fun testSafeCall(str: String?): Int? {
 
// str이 null이면 length를 체크하지 않고 null을 반환
 
var resultNull: Int? = str?.length
 
return resultNull
 
}
 
 

만약 Safe Call을 사용하지 않았는데 str 변수가 null이라면 프로그램은 다운됨.

 

Null 값 대체하기: ?

다음 코드에서 Safe Call 다음에 호출되는 프로퍼티 뒤에 다시 ?:을 붙여봄

그리고 0이라는 값을 표시함

이렇게 호출하면 str 변수가 null일 경우 가장 뒤에 표시한 0을 반환함
 

?:(elvis operator)로 return이 null일때 대체하기

 

 

728x90

'TIL > selfpractice' 카테고리의 다른 글

스코프 함수  (1) 2024.01.19
지연 초기화  (1) 2024.01.17
클래스와 설계-2  (2) 2024.01.16
클래스와 설계-1  (0) 2024.01.16
kotlin 함수 문제1,2,3  (0) 2024.01.16