반응형

Dart 2.12.0 이상부터  Null safety를 지원합니다.
변수 선언시 데이터 타입에 물음표(?)를 사용함에 따라 null을 지원하는지 여부를 결정합니다.

// NonNull 
int value1 = 10;
// Nullable 
int? value2 = 10;

dynamic 타입은 Null을 지원하므로 물음표(?)를 붙이지 않아도 됩니다.

변수 뒤에 느낌표(!)를 붙이면 해당 변수의 값을 가져오지만, 만약 null인 경우에는 오류가 발생합니다.

Null 을 지원하는 객체의 멤버에 접근할때에는 ?. 또는 ?[] 를 사용합니다.

String? str = 'zzz';
str?.isEmpty;

List<int>? list = [10, 20, 30];
print('value = ${list?[0]}'); // value = 10

해당 변수가 null이 아닌 값만을 대입할때에는 ??=를 사용합니다. null은 대입하지 못합니다. 

int? value;
value ??= 10;
print('value = $value'); // value = 10

value ??= null;
print('value = $value'); // value = 10

해당 변수가 null인 경우에만 값을 대입 할때에는 ??를 사용합니다. null이 아닌 경우에는 무시합니다.

String? str1 = 'zzz';
String? str2 = str1 ?? 'aaa';
print('str = $str2'); // str = zzz
반응형

'Dev Study > Flutter & Dart' 카테고리의 다른 글

Dart 상속  (0) 2023.11.17
Dart Class 생성자  (0) 2023.11.17
Dart 예외처리 (try on finally)  (0) 2023.11.16
Dart Function  (0) 2023.11.16
Dart 컬렉션 타입 (List, Set, Map)  (0) 2023.11.16
Dart 변수 타입 (var, dynamic)  (0) 2023.11.16
Dart 상수 (const, final)  (0) 2023.11.16
Dart 데이터 타입  (0) 2023.11.16
Posted by 까칠코더
,