Flutter & Dart

Dart Null safety

까칠코더 2023. 11. 16. 15:00
반응형

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