Flutter

[F] 4. Non-Nullable

taeskim 2021. 9. 3. 17:38

1. Null

- 객체에 대한 값의 부재를 나타낸다.

- null인 상태인 객체에 접근을 해야 해당 객체의 프로퍼티에 접근하게 되면 NPE(Null Pointer Exception)이 발생하게 된다.

- NPE는 잘 다루어지지 않으면 runtime 동안 언제 어디서든 일어날 수 있다. 사용자가 경험하게 되는 최악의 경험 -> 앱 삭제 크리를 막기 위해서도 edit-time 단계에서 걸러낼 수 있어야 한다.

- sound null safety를 dart팀은 도입했고, "?"를 타입뒤에 사용하지 않는 이상 해당 객체는 절대로 Null이 될 수 없음을 명시하며, null referece errors를 피할 수 있게 해준다.

2. Dart의 타입시스템

- Nullable types, Non-Nullable types 두개의 타입으로 크게 나눌 수 있을 것이다.

- 예를 들어, String?이라고 명시되어 있다면 해당하는 변수는 String 또는 null을 가지며 이에 모두 해당하지 않는다면 Never가 된다.

- Never에 대한 설명(https://dart.dev/null-safety/understanding-null-safety#never-for-unreachable-code)

참고 자료

https://www.raywenderlich.com/21955673-non-nullable-dart-understanding-null-safety