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
- npm
- nodejs
- 자바 출력 방식
- UI/UX
- println
- Flutter
- ListView
- JQ
- 자바 포맷 출력
- react
- JS
- lifecycle
- unity
- develop
- 자바스크립트
- scss
- 단축키
- 엡
- riverpod
- Clean Architecture
- abap
- printf
- firebase
- DART
- 앱심사
- 배포
- java 출력
- java
- java 콘솔 출력 차이
- LLM
Archives
- Today
- Total
guricode
잘 모르면 애매한 Dart 간단 정리 - final, const, late, null 본문
값을 변경할 수 없는 상수에는
inal과 const가 있음
dart final [타입] [변수이름] = [값]; // 타입 생략 가능
const [타입] [변수이름] = [값]; // 타입 생략 가능
둘 다 상수이기 때문에 똑같다고 생각할 수 있지만
차이점
- final
: 프로그램 실행 중에 초기화가 된다.
→ 실행 중에 값이 결정되는 경우에 사용 (예: 현재 시간) - const
: 컴파일 시점에 초기화된다 (컴파일 타임 상수)
→ 실행 전이든 후든 항상 고정된 값 (예: 원주율)
late 변수
선언 후에 초기화되는 Non-Nullable 변수
→ 변수가 사용되는 시점에 초기화됨 (지연 초기화)
late String name; // 타입 생략 불가능
언제 사용하지?
변수 선언할 때 값을 정하기 어려운 경우
late String description;
void main() {
description = '설명입니다.';
print(description); // 설명입니다.
}
null을 써도 되지만 컴퓨터는 null을 싫어하기 때문에
가능한 late로 처리하는 게 좋음
초기화 비용이 큰 변수일 경우
지금 당장 안 쓰는 변수는 late로 지연 초기화
int getTemperature(int temperature) {
print(temperature);
return temperature;
}
void main() {
late int temperature = getTemperature(35);
}
temperature가 실제로 사용되기 전까진 실행되지 않음
✅ null은 언제 사용할까?
값이 없는 값이라는 걸 컴퓨터에게 알려주기 위해 사용
→ 타입 뒤에 ? 붙이면 Nullable 변수
int? nullableInt;
print(nullableInt); // null
nullableInt = 1;
print(nullableInt); // 1
✅ null 안전하게 쓰는 법
컴퓨터가 싫어하든 말든 null을 안전하게 쓰고 싶다면
→ ?. 연산자를 사용!!
String? name;
print(name?.length); // null
name = 'Bob';
print(name?.length); // 3
?. 연산자가 붙은 표현식은 해당 변수가 null이면 전체가 null이 됨
'앱 > Flutter&Dart' 카테고리의 다른 글
| 잘 모르면 애매한 Dart 간단 정리 - for-in 순회식 & continue 키워드 정리 (0) | 2025.06.24 |
|---|---|
| 잘 모르면 애매한 Dart 간단 정리 - 타입 체크 연산자 (0) | 2025.06.23 |
| dart // API 호출 차단 문제 (0) | 2025.06.20 |
| flutter 객체지향 프로그래밍 1 - Class,Instance,Constructor (0) | 2025.06.19 |
| appBar에서 타이틀이 가운데 정렬 되지 않을때 (0) | 2025.06.19 |