프로그래밍 공부 메모/flutter
final, const 공통점과 차이점
jjs815
2022. 5. 15. 15:17
1. 공통점 => 한번 선언된 값은 변경이 불가능하다
2. 차이점
final => 코드가 컴퓨터 언어로 컴파일되고 실행이되는 순간(런타임) 딱 한 번만 선언이 되면 사용이 가능
void main() {
final DateTime now = DateTime.now();
print(now);
//1초뒤에 실행될 함수
Future.delayed(
Duration(milliseconds:1000),
(){
final DateTime now2 = DateTime.now();
print(now2);
}
);
}
const => 코드를 작성하고 컴파일이 되기 전에 값이 지정되어 있어야 한다
void main() {
const DateTime now = DateTime.now();
print(now);
//1초뒤에 실행될 함수
Future.delayed(
Duration(milliseconds:1000),
(){
const DateTime now2 = DateTime.now();
print(now2);
}
);
}
◎ 아래와 같이 컴파일 단계에서 오류가 난다!!
3. 설명 : 코드가 실행되는 동안에도 시간은 흘러가고 있다 이처럼 변수의 값이 바뀌고 있다는 것인데
시점의 차이가 있다 final과 const는 값이 변하는걸 싫어 한다는건 같으나
final로 변수를 선언하면 실행이 될때 현재 시간을 변숫값으로 선언하는 효과가 있고
const는 컴파일 되기전에 변수의 값을 지정해야 한다
4. 팁 : 앱 디자인시 Text() 위젯을 사용한다면 const Text() 또는 Text() 처럼 코딩을 작성 할 수 있다
특별한 에러는 발생 하지 않지만 약간의 차이점이 있다!
4-1) 컴파일 vs 런타임
const Text()와 같이 코딩을 하면 컴파일 단계에서 확정된(변경될 수 없는) 상태가 되어
런타임( 앱 실행 중) 시 앱이 한결 빨라진다 사람이 체감할 정도 인지는 모르겠으나
프로젝트의 규모가 커지고 코딩이 방대해지면 효과가 있을것 같다
반응형