상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - 다트의 final과 const의 차이는 무엇인가요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
Dart 프로그래밍 언어에서 `final`과 `const`는 모두 변수를 선언할 때 사용되지만, 그 사용 목적과 동작 방식에서 중요한 차이가 있습니다. 이 두 키워드는 불변성을 제공하지만, 각각의 상황에 따라 다르게 작동합니다. 아래에서 이 두 키워드의 차이점을 자세히 설명하겠습니다. 1. `final` - 정의 : `final` 키워드는 변수를 한 번만 할당할 수 있도록 제한합니다. 즉, `final`로 선언된 변수는 초기화된 후에는 다시 값을 변경할 수 없습니다. - 초기화 시점 : `final` 변수는 런타임에 초기화될 수 있습니다. 이는 프로그램 실행 중에 값을 결정할 수 있다는 것을 의미합니다. - 예시 : ```dart final currentTime = DateTime.now(); // 런타임에 현재 시간으로 초기화 final name = 'Alice'; // 문자열 리터럴 ``` - 사용 사례 : `final`은 <a href='https://sangseek.com/sangseeks/주로 런/ko'>주로 런</a>타임에 결정되는 값이나 객체를 저장할 때 유용합니다. 예를 들어, API 호출 결과나 사용자 입력 등을 저장할 때 사용할 수 있습니다. 2. `const` - 정의 : `const` 키워드는 컴파일 타임에 상수로 평가되는 변수를 선언합니다. 즉, `const`로 선언된 변수는 프로그램이 컴파일될 때 그 값이 결정되며, 이후에는 변경할 수 없습니다. - 초기화 시점 : `const` 변수는 반드시 컴파일 타임에 초기화되어야 하며, 이는 <a href='https://sangseek.com/sangseeks/상수 표현/ko'>상수 표현</a>식으로만 초기화할 수 있음을 의미합니다. - 예시 : ```dart const pi = 3.14; // 컴파일 타임에 결정된 상수 const daysInWeek = 7; // 상수 ``` - 사용 사례 : `const`는 변하지 않는 값이나 객체를 정의할 때 사용됩니다. 예를 들어, 수학 상수, 설정 값, 또는 불변의 리스트와 맵을 정의할 때 유용합니다. 3. 주요 차이점 요약 - 초기화 시점 : - `final`은 런타임에 초기화될 수 있지만, `const`는 컴파일 타임에 초기화되어야 합니다. - 변경 가능성 : - `final` 변수는 한 번만 값을 할당할 수 있지만, 그 값은 런타임에 결정될 수 있습니다. 반면, `const` 변수는 컴파일 타임에 결정된 상수로, 그 값은 절대 변경할 수 없습니다. - 메모리 사용 : - `const`로 선언된 객체는 동일한 값의 객체가 여러 번 사용될 때 메모리에서 단일 인스<a href='https://sangseek.com/sangseeks/턴/ko'>턴</a>스를 공유합니다. 반면, `final`로 선언된 객체는 각기 다른 인스턴스를 가질 수 있습니다. 4. 예시를 통한 이해 ```dart void main() { final currentDate = DateTime.now(); // 런타임에 현재 날짜로 초기화 const daysInWeek = 7; // 컴파일 타임에 결정된 상수 print(currentDate); // 현재 날짜 출력 print(daysInWeek); // 7 출력 // currentDate = DateTime.now(); // 오류: final 변수는 재할당할 수 없음 // daysInWeek = 8; // 오류: const 변수는 재할당할 수 없음 } ``` 결론 Dart에서 `final`과 `const`는 모두 불변성을 제공하지만, 그 사용 방식과 초기화 시점에서 차이가 있습니다. `final`은 런타임에 결정되는 값에 적합하고, `const`는 컴파일 타임에 결정되는 상수에 적합합니다. 이 두 키워드를 적절히 활용하면 코드의 가독성과 안정성을 높일 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기