본문 바로가기
개발노트/Flutter

[Flutter] const 경고 & 상수항 선호 경고 해결하기

by 전지적진영시점 2023. 3. 19.
반응형

개발 환경

---------------------------------

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로는 선언할 수 없다.

반응형

댓글