Dart의 final / const 선언자 비교

2020. 11. 25. 01:10·Mobile/Flutter
반응형



Dart에서 변경할 수 없는 변수를 선언할때 final와 const를 사용한다.

final name = 'Bob';
const name = 'Bob';


두 선언자는 같은 기능을 하지만, 변수가 설정되는 시점에서 차이점을 갖는다.

final은 run-time에, const는 compile-time에 초기화된다.

 

결론적으로 final과 const로 선언된 변수는 최종 값을 변수이지만 설정되는 시점에 알맞게 사용되어야 한다.

 

final ↔️ const 공통점


➡️ 변수 선언시 초기화 되어야한다

final name = 'Bob';

 

➡️ 한번 설정된 변수의 값은 변경할 수 없다

name = 'Alice'; // error: final|const 변수는 한번만 설정할 수 있음.

 

final ↔️ const 차이점


final

➡️ 타입에 관계없이 할당 가능

➡️ 값이 object인 경우 안의 필드는 변경 가능

final list = [1, 2, 3];
list[2] = 1;

 

const

➡️ 숫자, 문자열, const 변수, 계산식 할당 가능

const num = 1;
const str = "str";
const constantList = const [1, 2, 3];
const atm = 1.01325 * bar;

 

➡️ 값이 object인 경우 안의 필드도 변경 불가능

const list = [1, 2, 3];
list[2] = 1; // error: const 변수는 필드도 변경 불가능

 

➡️ Dart Guides > Variables | Final and Const

 

A tour of the Dart language

A tour of all of the major Dart language features.

dart.dev

 

 

반응형
저작자표시 비영리 변경금지 (새창열림)

'Mobile > Flutter' 카테고리의 다른 글

Dart Class Constructors 생성자 [Constructors, Named Constructors, Initializer List]  (0) 2021.06.16
'Mobile/Flutter' 카테고리의 다른 글
  • Dart Class Constructors 생성자 [Constructors, Named Constructors, Initializer List]
helperwoo
helperwoo
\ೕ( ・ㅂ・)و /
  • helperwoo
    WooLog
    helperwoo
  • 전체
    오늘
    어제
    • All (55)
      • Web (25)
        • PHP (6)
        • Java (5)
        • Javascript (8)
        • Laravel (2)
        • Spring Boot (0)
        • React.js (1)
        • Electron.js (1)
        • Vue.js (1)
        • Nest.js (1)
      • Mobile (2)
        • Flutter (2)
      • SQL (1)
        • MySQL (4)
      • Docker (6)
      • Server (7)
      • Git (2)
      • Tool (3)
      • AI (2)
      • Tip (3)
      • Log (0)
  • 블로그 메뉴

    • 링크

      • Github
    • 공지사항

    • 인기 글

    • 태그

      deepseek
      엘리스
      Laravel
      vscode
      image
      flutter
      CTE
      recursive
      php
      JavaScript
      MYSQL
      코드
      ollama
      docker
      DB연동
      with
      프로그래머스
      알고리즘
      dart
      CLI
      데이터베이스
      frankenphp
      git
      websocket
      nginx
      http
      ignorecase
      Compose
      apache
      챌린지
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    helperwoo
    Dart의 final / const 선언자 비교
    상단으로

    티스토리툴바