FLUTTER
flutter - Null Safety
춘행이
2023. 12. 5. 12:30
728x90
Null safety
null 관련 에러를 runTime이 아닌 edit time에 체크해서 코드가 작성될 때 null 에러가 발생할 수 없게 해 줍니다
즉 모든 변수는 null이 될 수 없고(non-nullable) null이 들어가려면 선언 시? 를 사용하여 nullable 변수로 선언한다
void main() {
int ageNull;
int? ageNullable;
print(ageNull);//error: The non-nullable local variable 'ageNull' must be assigned before it can be used.
print(ageNullable);
}
이렇던?를 붙이지 않으면 위처럼 non-nullable을 사용하려면 초기화를 시켜줘야 한다
void main() {
int ageNull=10;
int? ageNullable;
print(ageNull); //10
print(ageNullable);//null
}
위처럼 초기화를 시켜주면 잘 컴파일되고? 가 붙은 nullable은 null이 나온다
또! 가있는데 null check operator로 값이 null이 아니라고 보장해 주고 판단해 줍니다
void main() {
int? age=10;
print(age);
age=null;
print(age!);//Null check operator used on a null value
}
하지만!로 보장을 해줬지만 null이면 컴파일러가 에러를 잡아내지 않고 런타임시 에러가 위 주석처럼 발생합니다
late는 변수 선언 시 지연 초기화 기법으로 변수타입 앞에 붙여준다
지금은 선언 안 하지만 나중에 데이터가 들어올 거다라고 약속하는 의미이다
아래처럼 name에 대해 데이터를 끝내 넣지 않는다면 바로 에러가 난다
void main() {
late String name;
print(name);
}
728x90