반응형
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 |

