final과 const는 둘 다 값을 불변으로 만드는 용도로 자주 쓰곤한다.
그러나 막상 사용할 때 이게 무슨 차이점이 있고 어느용도로 쓰이는지 헷갈려 포스팅하게 되었다.
클래스 인스턴스 변수
class User {
final String name;
final int age;
User(this.name, this.age); // 인스턴스 생성 시 값 할당
}
// User 인스턴스를 생성하고 이후에 name과 age를 변경할 수 없습니다.
void main() {
final user = User('Jiwon', 27);
print(user.name); // Alice
}
네트워크 요청 결과 저장
void main() async {
final response = await fetchData(); // 네트워크 요청
print(response); // 결과 출력
}
위젯 상수화
build(BuildContext context) {
return const Text('Hello, World!'); // 상수 위젯
}
Widget
상수 표현식
const double pi = 3.14159265359; // 상수 표현식
final은 런타임에 한 번만 값을 할당하는 의미이고, const는 상수 표현식이라는 부분에서 가장 큰 차이점을 두고있다. 불변이라는 부분은 같지만 위의 차이점을 이해하고 상황에 맞게 사용하여 코드의 안정성과 성능을 향상시킬 수 있다