1. null safety
null값을 참조했을 때 오류가 발생하는 것을 컴파일 하기 전에 미리 방지해주는 방법
기본적으로 모든 변수는 null값을 가질 수 없지만 null값을 필요로 하는 경우도 있다.
(잘 모르겠지만 앱을 만들고 실행하고나서 오류를 찾는 것이 아니라 만들면서 찾을 수 있도록 하기 위한 방법인 것 같다.)
(API에서 data를 받아올 때 사용할 일이 있을 것이다.)
bool isEmpty(String sentence) => sentence.length == 0;
void main(){
isEmpty(null)
}
위와 같이 코드를 전개하면 오류가 발생한다.
String 이 와야 할 곳에 null 이 왔기 때문
2. 해결방안( nullable variables)
void main(){
String name = 'yoon';
name = null; // 오류
}
위 코드에서는 String이 와야 할 변수에 null을 할당하여 오류가 발생한다.
이 때 String name 이라는 변수가 null 값을 갖을 수 있다는 것을 알려주기 위해 아래와같이
변수를 선언할 때 물음표(?)를 붙여주어야 한다.
void main(){
String? name = 'yoon';
name = null;
}
하지만 이렇게 변수의 type을 nullable로 선언하여도 추가적으로 필요한 부분이 있을 수 있다.
아래의 코드를 보자
void main(){
String? name = 'yoon';
name = null;
name.length; //오류
name.isNotEmpty; //오류
}
위의 코드에서 .length, .isNotEmpty 메서드는 String을 받아 사용하는 메서드이다.
null을 받아 사용할 수 없기 때문에 오류가 발생한다 하여 아래와 같이 수정해주어야 한다.
void main(){
String? name = 'yoon';
name = null;
if(name!=null){
name.length;
name.isNotEmpty;
}
}
위와 같이 조건문을 통해 null 값이 아닐 때만 실행해준다면 문제가 되지 않을 것이다.
위 코드를 아래와 같이 간단하게 요약하여 표현할 수 있다.
void main(){
String? name = 'yoon';
name = null;
name?.inNotEmpty;
}반응형
'study > dart' 카테고리의 다른 글
| Dart_(6) Late variables (0) | 2024.03.21 |
|---|---|
| Dart_(5) Final variables, Constant variables (0) | 2024.03.21 |
| Dart_(3) 변수(variables) (0) | 2024.03.20 |
| Dart_(2) Hello world (0) | 2024.03.20 |
| Dart_(1) 시작하기 (2) | 2024.03.20 |