Dart의 Nullable 변수는 ? 기호를 사용하여 null 값을 허용하는 기능이며, 이를 사용하면 null 값을 검사하여 예외를 방지할 수 있습니다.
Nullable 변수
Dart에서는 기본적으로 타입을 명시하면 해당 타입의 객체만 할당 할 수 있습니다. 즉, 기본적으로 모든 변수는 non-nullable 입니다. 하지만, null 값을 허용하려면 ? 기호를 사용하여 Nullable 변수를 선언할 수 있습니다. 즉 타입이 명시된 변수에 null 값을 저장할 수 있습니다.
- Nullable 변수 사용법
- Nullable 변수 사용시 null 값 처리는 필수
- null safety 란?
Nullable 변수 사용법
일반 변수는 null 값을 할당할 수 없습니다.
String name = "John";
print(name); // John
name = null; // error: A value of type 'null' can't be assigned to a variable of type 'String'.
결과는 아래처럼 error 가 발생합니다.
하지만, 아래와 같이 ? 기호를 사용하여 Nullable 변수를 선언하면 그 변수는 null 값을 할당할 수 있습니다.
String? name;
name = "John";
name = null;
print(name); //null
null 값이 정상적으로 출력되었습니다.
이러한 Nullable 변수를 사용하면 null 값을 허용하는 코드를 작성할 수 있으며, 프로그램 실행 중 null 값을 검사하여 예외를 방지할 수 있습니다.
Nullable 변수 사용시 null 값 처리는 필수
Nullable 변수를 사용하면 null 값을 허용하는 코드를 작성할 수 있지만, 이를 사용하면 null 값을 처리하지 않은 상태로 코드가 실행될 수 있습니다. 이는 컴파일러가 null 값을 참조하여 error를 야기시킬 수 있습니다.
따라서 ? 를 붙인 nullable 변수는 이 변수가 null 인지 아닌지를 확인할 수 있는 코드를 작성해 줍니다.
void main(){
String? name = "john";
name = null;
// null 인지 확인
if(name != null){
name.isNotEmpty;
}
}
또한 null-safe 연산자(?.)를 사용하면 null 값을 검사하여 null이 아닐 경우에만 코드를 실행할 수 있습니다.
void main(){
String? name = "john";
name = null;
// null safety 연산자 활용
name?.isNotEmpty;
}
null safety 란?
null safety 란 어떤 변수, 혹은 데이터가 null이 될수 있음을 명시하는걸 뜻합니다. 즉, 개발자가 null 값을 참조할 수 없게 하는 것입니다. null safety로 인해 Dart 컴파일러는 어떤 데이터가 null 일 때 참조하지 않도록 도와줍니다.
즉, null safety 는 nullable 변수를 선언하는 것과 같습니다.
마무리
Dart의 Nullable 변수는 ? 기호를 사용하여 null 값을 허용하는 기능이며, 이를 사용하면 null 값을 검사하여 예외를 방지할 수 있지만 신중하게 사용해야 합니다.
오늘도 행복한 코딩생활 되시길 바라겠습니다.
감사합니다.
'개발 > Dart' 카테고리의 다른 글
Dart 기초 - 06. late 변수, final 변수와 다른점 (0) | 2023.01.24 |
---|---|
Dart 기초 - 05. final 변수, Dart const 와 비교 (0) | 2023.01.23 |
Dart 기초 - 03. dynamic type 변수, 여러가지 타입을 가질 수 있는 변수 키워드 (0) | 2023.01.22 |
Dart 기초 - 02. 변수 선언(var, 변수타입 지정) (4) | 2023.01.21 |
Dart 기초 - 01. 코드 테스트 사이트(dartpad.dev) 및 hello world 출력하기 (0) | 2023.01.21 |
댓글