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 버전부터 기본으로 활성화되었습니다.
dart
// 코드의 시작점
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 Safety 개념에서 발생 문법들 ...
// 1
String? mayName;
// print(mayName.runtimeType);
// Null 값이 아니면 문자열 길이를 반환, null 이라면 0을 반환해라.
int resultLength = mayName?.length ?? 0;
// ? 뜻이 mayName 이 null 체크를 해라.
print(resultLength);
// 2
String? name = getName(); // name 과 getName() 의 타입은 다르다.
String? returnName = name?.toLowerCase() ?? "make"; // ?? --> "make" null 대체 연산자
print(returnName);
}
// 전역 함수
String? getName() {
return "NAME";
}

'Flutter' 카테고리의 다른 글
| 2024. 11. 05 Flutter UI 프레임워크 + Chat gpt 사용 방법 (2) | 2024.11.05 |
|---|---|
| 2024.09.06 Flutter dart(함수, 메서드) (0) | 2024.09.06 |
| 2024 .09. 04 flutter 가상 디바이스 분리하는 방법 (0) | 2024.09.04 |
| 2024 .09. 04 flutter 레이아웃 (1) | 2024.09.04 |
| 2024. 09. 04 Flutter 컬렉션(자료구조) (0) | 2024.09.04 |