[Flutter] Dart - Final 과 Const 선언자 비교

박망키·2022년 3월 2일
0

Flutter 야금야금 먹기

목록 보기
22/97

공통점

const와 final 키워드는 둘다 한번 변수에 설정한 값은 다시 재설정을 할수 없다는 공통점이 있다.

<script>

main(){
	const String name = "망키";
    final int age = 30;
    
    name = "박망키" //에러
    age = 28 //에러
}

</script>

차이점

const는 컴파일 타임에 상수를 설정한다. (Compile-time constant)
final은 런타임시에 결정되는 값도 상수로 설정할 수 있다.(Run-time constant)

그러므로 값이 컴파일 단계에서 결정될 경우 const,
런타임 단계에서 결정될 경우 final을 사용한다.

<script>

main(){
	const DateTime now1 = new DateTime.now(); //error
    //const는 실행시에 결정되는 값을 설정할 수 없다 정해진 값만 가능하다.
    
    final DateTime now2 = new DateTime.now();
    //final은 실행시에 결정되는 값도 설정가능하다.

}

</script>

정리

공통점차이점
선언과 초기화가 동시에 발생,
초기화된 값은 변경 불가능
final
클래스의 인스턴스를 할당 가능
값이 객체(Object)인 경우, 안의 요소는 변경 가능,
rebuild 될 수있음.
const
클래스의 인스턴스 할당 불가
값이 객체(Object)인경우, 안의 요소도 변경 불가능
profile
무럭무럭 자라는 망키

0개의 댓글