연습장/이론

Kotlin_ 6. Null Safety

아이른 2024. 1. 18. 14:31

var one: One

 if (1>2) {

  one = One()

}

one. print ()

//1>2 false, one 변수는 아무것도 없는 null 상태. 앱 다운.

 

Null safety (Nullable, 물음표)

//이를 방지하기 위한 안전장치.

 

var nullable: String?

nullable = null

//null값 입력 기본형.

//null을 허용한 변수는 null 이라는 메모리 안의 공간에 저장됨.

 

fun nullParameter(str: String?){   //str에 null허용

 if(str != null) {   //null 체크를 해야 str 사용가능

   var length2 = str.length

 }

}

//함수 파라미터에 null 허용 설정.

 

Safe Call (?.)

//변수가 null 경우 다음의 메서드나 프로퍼티를 호출하지 않음.

number.plus()

//null pointer exception 발생.

number?.plus()

//null 안에 plus 기능이 없기 때문에 null safety 사용.

//?. 다음의 코드는 실행되지 않음.

 

Elvis Operator (?:)

number?.plus()

var resule = number.plus(other: 37) ?: 51

//반드시 실행이 필요할때 사용.

//number가 null일 경우, 51을 대체해서 넣어라, 라는 뜻.

//null이 절대로 들어가지 않음_ ?, ?: 둘다 실행되었기 때문.

 

Nullable : null을 입력받기 위해 사용.

Safe Call : null일 때, 속성이나 명령어를 처리하지 않기 위해 사용.

Elvis Operato : null일 때, 다음에 나오는 값을 기본값으로 사용.