[Dart] Null SafetyLanguage/Dart2023. 5. 15. 10:00
Table of Contents
반응형
Null Safety는 개발자가 null 값을 참조할 수 없게 하는 것입니다.
다음 코드를 봅시다.
bool isEmpty(String string) => string.length == 0;
main(){
// [오류]
isEmpty(🚫null);
}
다음과 같은 코드는 어떻게 실행될까요?
정답은 NoSuchMethodError
를 실행합니다. 왜 이렇게 실행될까요?
바로 String을 보내야 할 곳에 null을 보냈기 때문입니다.
null 에는 length 라는 속성이 없기 때문이기도 합니다.
이와 같은 에러는 컴파일러에서 잡을 수 있는 에러가 아닙니다.
이런 상황이 발생하지 않도록 null 를 삭제하기에는 null 값은 유용합니다.
그럼 어떻게 null 값을 참조하는 것을 dart는 어떻게 보호할까요?
dart에서는 변수가 null이 될 수 있음을 명확히 표시해야 합니다.
다음 코드를 봅시다.
void main() {
String name = "eden";
🚫name = null;
}
이 코드는 에러가 납니다. name 이 null 값을 참조할 수 있다고 알려주지 않고 null 값을 참조하기 때문입니다.
그러면 다음 코드를 봅시다.
void main() {
String? name = "eden";
name = null;
}
이 코드는 에러가 나지 않습니다. 차이점이 뭘까요? 바로 변수 뒤에 ?
를 사용해 이 변수에는 null 이 참조될 수 있음을 알려주는 것입니다.
만약 ?
를 붙인 변수는 이 변수가 null 인지 아닌지 확인해야 합니다.
void main() {
String? name = "eden";
name = null;
if (name != null) {
print(name.length);
}
}
반응형
'Language > Dart' 카테고리의 다른 글
[Dart] 클래스(Class) 사용 방법 (0) | 2023.05.26 |
---|---|
[Dart] 함수(Function) 사용 방법 (0) | 2023.05.22 |
[Dart] Data Types (0) | 2023.05.18 |
[Dart] 변수(Variable) 사용 방법 (0) | 2023.05.11 |
[Dart] 시작하기 (0) | 2023.05.08 |
@고지니어스 :: 규니의 개발 블로그
IT 기술과 개발 내용을 포스팅하는 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!