flutter는 null safety를 지원한다. 그 기능 중에 late와 ?가 있다.
그래서 구글 바드에게 물어봤다
late를 쓰는 것과
late double recipeAmount;
late double desiredAmount;
late double setMultiplier;
? 쓰는 것에 차이가 있을까 ? 지금은 flutter 를 사용하고 있어
double? recipeAmount;
double? desiredAmount;
double? setMultiplier;
구글 바드 답변
네, late를 쓰는 것과 null을 허용하는 것을 쓰는 것에는 차이가 있습니다.
late는 변수가 정의된 후에는 항상 초기화되어야 한다는 것을 의미합니다.
반면 ?를 사용해서 null을 허용하는 것은 변수가 초기화되지 않더라도 null일 수 있다는 것을 의미합니다.
Flutter에서는 late를 사용하는 것이 좋습니다.
late를 사용하면 변수를 정의된 후에는 항상 초기화되어야 한다는 것을 기억할 필요가 없기 때문에 코드가 더 간결하고 이해하기 쉽습니다. 또한 late를 사용하면 변수가 초기화되지 않은 상태로 사용되는 것을 방지할 수 있습니다.
다음은 late를 사용하는 예입니다.
예시
late를 사용한 recipeAmount의 값은 1.0 그대로 출력
late double recipeAmount;
void main() {
recipeAmount = 1.0;
print(recipeAmount); // 1.0
}
?를 사용한 recipeAmount의 값은 null로 출력
double? recipeAmount;
void main() {
print(recipeAmount); // null
recipeAmount = 1.0;
print(recipeAmount); // 1.0
}
late 키워드는 널 안정성을 보장하는 데 도움이 됩니다.
널 안정성은 변수가 널일 수 있는지 여부를 확인하고, 널이 될 수 없는 변수에 널 값을 대입할 때 오류를 발생시킵니다. late 키워드를 사용하면 변수를 나중에 초기화할 수 있으므로, 널 안정성을 보장하는 데 도움이 됩니다.
late 키워드는 다음과 같은 경우에 유용합니다.
- 변수를 나중에 초기화해야 하는 경우
- 변수가 널일 수 있는지 여부가 확실하지 않은 경우
late 키워드를 사용하면 코드를 더 안전하게 만들고 널 오류를 방지할 수 있습니다.
'Flutter-플러터 > 플러터 공부' 카테고리의 다른 글
23.6.26 수업 정리 -Provider (0) | 2023.06.26 |
---|---|
Provider - context.read (0) | 2023.06.21 |
네이버 개발자가 작성한 Flutter 상태관리지 비교분석 (0) | 2023.06.13 |
getNoteList() 을 만들어서 obx위젯에서 사용하게 만들기! (0) | 2023.06.06 |
Getx obx오류 (0) | 2023.05.30 |