Dart는 친절하게도 Null Safety
를 지원한다고 한다.
Null Safety
는 개발자가 null값을 참조할 수 없도록 하는 것이다.
기존에는 null값을 참조하면 런타임 에러가 발생할 수 있었지만, Null Safety를 통해 컴파일 전에 이러한 오류를 방지하기 위해 만들어졌다.
이는 사용자가 앱을 사용하는 동안 발생하는 런타임 에러를 최소화하여 더 안정적인 코드를 작성할 수 있도록 도와준다.
Dart에서 Null Safety가 적용된 예시를 확인해보자.
String타입인 변수 string의 값이 0이라면 true, 아니라면 false를 반환하는 함수이다.
bool isEmpty(String string) => string.length == 0;
main() {
isEmpty(null);
}
함수를 호출할 때 null을 파라미터로 보냈기 때문에 벌써 null에 빨간줄이 뜨고, 실행을 하더라도 에러가 뜰 것이다.
하지만 개발을 하다보면 API 요청을 해서 불러온 데이터가 Null 일 수 도있고, Null을 사용해야 하는 경우가 분명 존재한다.
그럴 땐 Nullable이 되도록 바꿔보자.
변수 뒤에 ?
를 붙여 Nullable로 변경할 수 있다.
Nullable이 된다면 변수가 Null값이면 참조하지 않고, Null이 아니라면 함수가 실행될 것이다.
bool isEmpty(String? string) => string?.length == 0;
main() {
isEmpty(null);
}
변수 선언을 할 때 타입에도 ?
를 붙여주어야 하고, 해당 변수 뒤에도 ?
를 붙여 함수를 호출한다.
실행결과 - null 값을 파라미터로 보냈기 때문에 참조하지 않아 결과가 없다.