Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Provider
- StatefulWidget
- Android
- 변수
- 상태관리
- BottomNavigationBar
- non-nullable
- 1과목
- flutter
- swift
- firebase_auth
- setState
- Kotlin
- Cocoa touch Framework
- 정보처리기사
- GetX
- Null Safety
- java
- go_router
- 로그인
- 회원가입
- auth
- dart
- UserAccountsDrawerHeader
- IOS
- 이메일
- 안드로이드
- 함수
- firebase
- 안드로이드 스튜디오
Archives
- Today
- Total
앱 개발 공부방
flutter - Null Safety 본문
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
'FLUTTER' 카테고리의 다른 글
flutter - 동기,비동기 프로그래밍 (1) | 2023.12.05 |
---|---|
flutter - 오버라이드 (1) | 2023.12.05 |
flutter - dart문법 상속 (0) | 2023.11.30 |
flutter - dart문법 final const 차이 (0) | 2023.11.30 |
Flutter 상태관리(provider) (1) | 2022.12.06 |
Comments