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
- vm
- file
- widget
- icon button
- System call
- pintos
- scaffold
- Flutter
- BFS
- algorithm
- Cow
- create
- materialapp
- flutter
- stack growth
- Copy-on-write
Archives
- Today
- Total
JunHyeok
[Flutter] 1. final과 const 변수 이해하기 본문
플러터에서 final과 const 키워드의 차이점
final과 const 키워드는 모두 변수의 값을 변경할 수 없도록 하는 데 사용됩니다.
1. 값 초기화 시점
- final: ** 변수 선언 시점에 **초기값을 반드시 지정해야 합니다.
- 예시:
final String name = 'Flutter';
- 예시:
- const: 변수 선언 시점에 초기값을 지정해야 하고, 컴파일 타임에 값이 결정됩니다.
- 예시:
const String message = 'Hello, Dart!';
- 예시:
2. 메모리 할당
- final: 런타임에 메모리 할당
- const: 컴파일 타임에 메모리 할당. 불변 객체로 저장되어 프로그램 실행 속도 향상
3. 객체 생성
- final: 새로운 객체 생성 가능
- 예시:
final List<String> numbers = ['one', 'two', 'three'];
- 예시:
- const: 기존 객체 참조 또는 새로운 불변 객체 생성만 가능
- 예시:
const List<String> numbers = ['one', 'two', 'three'];
- 예시:
4. 사용 권장 사항
- 변수 값이 변경되지 않는 경우: const 사용 권장 (성능 향상)
- 런타임에 값 할당이 필요한 경우: final 사용
- 객체의 불변성을 명확하게 표현하고 싶을 때: const 사용
예시
// const 사용 예시 (불변 객체)
const String appName = 'My Flutter App';
const Color primaryColor = Colors.blue;
// final 사용 예시 (런타임에 값 할당)
final List<int> lottoNumbers = [1, 2, 3, 4, 5];
lottoNumbers.add(6); // 가능 (final이지만, 런타임에 값 변경)
// 잘못된 const 사용 예시 (컴파일 에러)
const List<int> numbers = [1, 2, 3];
numbers.add(4); // 불가능 (const는 컴파일 타임에 값 결정)
- const: 컴파일 타임에 값 결정, 불변 객체, 메모리 할당 최적화, 성능 향상 + (stateless 위젯처럼, rebuild 될 수 있음)
- final: 런타임에 값 결정, 객체 생성 가능, 명확한 불변성 표현
'Flutter > 조금매운맛' 카테고리의 다른 글
[Flutter] 5. Null safety in Flutter -by 코딩셰프 (0) | 2024.06.14 |
---|---|
[Flutter] 4. Future - async 심화학습 -by 코딩셰프 (0) | 2024.06.14 |
[Flutter] 3. Future, async 그리고 await -by 코딩셰프 (0) | 2024.06.13 |
[Flutter] 2. 간단한 로그인 페이지 만들기 -by 코딩셰프 (0) | 2024.06.13 |