dart Null Safety

1. dart Null Safety 이란 뭘까?

널 세이프티(Null Safety)는 개발자가 널 에러를 피할 수 있도록 도와주는 다트 프로그래밍 언어의 기능이다. 이 기능은 사운드 널 세이프티 인 다트(Sound Null Safety in dart)라고 불리며, 이를 통해 개발자는 코드 작성 시점에 널 에러를 잡을 수 있다.

 

Sound Null Safety in dart 이란 (Sound Type System)

런타임 중에 null 포인터 예외를 방지하기 위해 Dart 컴파일러가 코드를 분석하고 컴파일할 때 타입 시스템에서 엄격한 규칙을 적용하는 것을 의미한다.

 

Dart Null Safety의 개념

  • Null Safety는 변수에 null 값을 할당하는 것을 엄격하게 제한한다.
  • 변수를 null 또는 non-null로 선언할 수 있다. (String , String?)
  • Non-null 변수는 null을 가질 수 없으며, null 변수는 null만을 가질 수 있다.
  • Null Safety는 Dart 2.12 버전부터 기본으로 활성화되었다.
// 코드의 시작점
void main() {
  String name = "Jhon"; // 이 변수는 null 아닌 문자열만 가질 수 있다.
  int age = 30; // null 이 아닌 정수값만 가질 수 있다.

  String? nullableName; // 이 변수는 문자열 또는 null을 가질 수 있다.
  int? nullableAge; // 이 변수는 null 또는 정수값을 가질 수 있다.

  if (nullableName != null) {
    print("Name : ${nullableName}");
  }
}

2. null check 연산자와 null 대체 연산자

null check 연산자와

Dart 언어에서 null 체크 연산자 (?)는 null 값일 수 있는 객체의 속성이나 메서드에 안전하게 접근하는 데 사용된다. 이 연산자는 null 참조 오류를 방지하고 코드를 더 견고하게 만든다. Dart에서 null 체크 연산자의 주요 두 가지 사용법이 있다 (속성과 메서드)

 

null 병합(대체) 연산자

Dart 언어에서 null 병합 연산자 (??)는 null 값 처리에 유용한 연산자이다. 이 연산자를 사용하면 변수나 표현식의 값이 null인 경우에 대체 값을 지정할 수 있다. null 병합 연산자를 사용하여 코드를 더 간결하고 안전하게 작성할 수 있다.

 

void main() {
  // Dart Null Safefety 개념에서 발생 문법들...

  // 1
  String? mayName;
  // print(mayName.runtimeType);

  // null 아니면 문자열 길이를 반환, null ---> 0을 반환해
  int resultLength = mayName?.length ?? 0;
  print(resultLength);

  // 2
  String? name = getName();
  String? returnName = name?.toLowerCase() ?? "mike";
  print(returnName);
}

// 전역 함수
String? getName() {
  return "NAME";
}

목차로 돌아가기

 

'Flutter > 기초' 카테고리의 다른 글

컬렉션(자료구조)  (0) 2024.09.04
프로젝트 구조 살펴보기  (0) 2024.09.04
변수  (3) 2024.09.03