본문 바로가기
Study/Flutter

[Dart] 동적변수 var, dynamic 비교

웹개발자가 많은 구글에서 만들어진 플러터는 꽤나 자바와 자바스크립트의 상당부분과 닮아있습니다.

Dart언어에서의 변수가 타입을 가지는 변수들과 모든 타입으로 초기화가 가능한 var, dynamic 을 알아 보겠습니다.

 

이 둘은 특정 모든 타입을 받을 수 있다는 공통점이 있지만,

초기화 이후 Dynamic은 동적으로 타입변경이 되지만, var는 초기화시 타입을 추론해 하나의 타입으로 지정됩니다.

 

1.  Dart var  ( !=JS var)

JS에서 var는 선언과 동시에 모든 타입을 받을수 있고,

이후로도 다양한 타입으로 자유자재로 해당 변수에 타입에 제약이 없이 재사용이 가능합니다.

하지만,

Dart에 var입력이 주어지게되면 해당 타입으로 타입 종류가 정해지게 됩니다. 

이후에 다른 타입의 값을 넣으려 한다면, 에러가나므로, JS에 var와는 조금 다릅니다.

 

 

 

2.  Dart Dynamic (== JS var)

 

Dart에는 dynamic 이라는 타입이 모든 타입이 수용가능하며,

동적으로 값에 따라 타입을 변경할 수 있습니다.

 

이를 이용해 타입 안전한 코드를 작성할 수도 있고,

타입안전성을 낮추어 좀 더 유연한 프로그래밍도 짤 수 있습니다. 

 

다이나믹은 일반적으로 우리가 정해진 타입인 경우를 제외하고

유추하기 어려운 특정 경우에만 조심스럽게 사용해야 합니다.

 

https://dart.dev/guides/language/type-system