[Dart] 변수와 상수

[원본 링크]

dart의 변수 선언방식에는 여러가지가 있다.


타입 명시 선언
타입 변수; 의 형태로 선언하는 것이다.
이러면 정적 타입으로 변수가 생성돼서 타입을 아주 잘 체크해준다. image

image


var 선언
타입 대신에 var 키워드를 넣는 방식이다. 이게 시스템이 좀 이상하다.
초기화 없이 var로 선언을 먼저 하고 나중에 값을 넣으면 이 변수는 동적 타입을 가지는듯하다.

그래서 이렇게 다른 타입의 값을 쑤셔넣어도 잘 적용된다. image

image

그런데 바로 초기화를 하면 정적타입 변수가 돼서, 다른 타입의 값이 들어가지 않는다. image

image


dynamic 선언
만약 초기화도 바로 하고싶고 변수도 동적으로 만들고 싶다면 dynamic 키워드로 선언하면 된다. image

image 잘 돈다.


상수
당연히 상수도 지원된다.
상수 없으면 그게 언어인가?
다트에선 상수를 위한 2가지 키워드를 제공한다.

final 상수
이건 일반적인 상수다.
타입을 명시할 수도 있고, 생략할 수도 있다.
반드시 선언과 동시에 초기화해야한다.
final 타입 상수명 = 값...;
or
final 상수명 = 값...; image

image

const 상수
사용법 자체는 final과 다르지 않다.
다만 이건 컴파일타임 상수라는게 다르다.
좀더 빠르단 뜻이다.
그래서 const의 초기값은 반드시 리터럴처럼 컴파일타임에 평가-계산될 수 있는 식이어야 한다. image

image



참조
https://www.tutorialspoint.com/dart_programming/dart_programming_variables.htm