Null Safety

DevDiary·2024년 9월 9일

Flutter

목록 보기
4/5
post-thumbnail

Null Safety란?

기본적으로 Flutter에서는 null 값이 할당되는 것을 방지해두었다.
안정성 때문이라고 하는데 의도치 않은 null값 할당을 방지하여 의도한 곳에만 할당 될 수 있는 문법이다.

존재이유는 개발자의 실수방지 / 코드 안정성 향상이다.

void main() {
  
  String name = 'Kihwan'; // not null

  String? name2 = null; // null

  print(name2.length); //null safety 조건에 실패
  print(name2?.length);//null safety 조건에 통과
  
  
}

여기서 ?의 의미는 "해당 변수는 null값이 할당 가능"이다.

null을 호출할 때도 위와 같이 null safety 조건이 있으니 참고



Null 합류 연산자

만약 다음과 아래와 같은 코드가 있다면 결과는 어떻게 나올까

void main() {
  String? name = null;

  String result = name;

  print(result);
}

위와 같은 에러가 뜬다.
대충 뜻은 name에게 할당된 값 때문에 result에 할당할 수 없다는 뜻

이럴 때 Null 합류 연산자 사용을 할 수 있다.

void main() {
  //null 합류 연산자(??)

  String? name = null;

  String result = name ?? '홍길동';

  print(result);
}

코드를 알기쉽게 풀어서 이해해보자.

  String result = name ?? '홍길동';

"만약 name의 값이 null이라면 '홍길동'의 값을 할당해라'"

그럼 만약 name의 값이 null 이 아니라면 어떻게 될까

void main() {
  //null 합류 연산자(??)

  String? name = '김철수';

  String result = name ?? '홍길동';

  print(result);
}

name의 값이 null이 아니기 때문에 기존에 할당된 값으로 result에게 넘어간다.

profile
약간의 경험에 약간의 운을 더하다

0개의 댓글