개발 환경
---------------------------------
OS : Mac
개발 툴 : android studio
개발 언어 : dart
개발 프레임워크 : flutter
---------------------------------
1. 현재 파일에만 적용하기
// ignore_for_file: prefer_const_constructors
위 행을 적용하고 싶은 파일에 추가합니다.
<추가된 모습>
2. 모든 파일에 적용하기
analysis-options.yaml 파일에 아래 코드를 추가합니다.
linter:
rules:
prefer_const_constructors: false
<추가된 모습>
추가 후 terminal에 아래 명령어 실행
dart fix --apply
---------추가
const는 왜 쓰는 것일까??
const 생성자를 사용하는 이유는
변수를 상수로 선언함 -> 값을 변경할 수 없기 때문에 코드의 오류를 줄이고 안정성을 높일 수 있다.
또한 컴파일 타임 상수를 생성하면 성능을 향상시킬 수 있다. 왜냐면 컴파일 타임 상수는 런타임에 값을 계산하지 않아도 되므로 런타임 성능도 향상 시킨다.
즉 앱을 실행할 때 한번만 생성되고 변하지 않아 리소스를 낭비하지 않는다.
그럼 cons랑 final의 차이점은 뭘까
둘다 한번 설정하면 값을 변경할 수 없다. 변경하려 하면 컴파일 에러가 발생한다.
차이점은 final은 변수를 컴파일 타임 상수로 선언하지 않는다.
여기서 컴파일 타임 상수란 컴파일 시간에 초기화 값을 확인할 수 있는 상수를 말한다.
우리는 프로그램을 작성하고 컴파일러가 컴파일 한 후 프로그램을 실행한다.
컴파일러가 컴파일을 할 때가 컴파일 시간이고 프로그램 실행할 때가 런타임 시간으로 보면 되겠다.
final은 런타임에 값을 계산한다. 그래서 const보다는 성능이 떨어질 수 있다. (속도면에서?)
예를들어 Datetime.now()는 런타임에서 정의되기 때문에 final로는 선언할 수 있지만 const로는 선언할 수 없다.
'개발노트 > Flutter' 카테고리의 다른 글
[Flutter] dio 통신 interceptor retry 사용하기 (0) | 2023.04.11 |
---|---|
[Flutter] Keboard 올릴때 Bottom Overflowed By Pixels 에러 처리 (0) | 2023.03.20 |
[Flutter]RenderBox was not laid out 에러 처리 (0) | 2023.03.18 |
[Flutter] device daemon #2 exited (exit code 127) && flutter not found 에러 해결기.. (0) | 2023.03.16 |
[Flutter] Container 위젯에 클릭 이벤트 주기 (0) | 2023.03.16 |
댓글