**이 페이지에서 알 수 있는 내용

- var Keyword
- dynamic Keyword**

var

변수의 자료형을 특정하지 않고 변수를 선언할 때 사용합니다. **var**를 변수로 선언하면 해당 변수에 저장되는 값의 유형에 따라 자료형이 정해지는 자료형 추론입니다.

다만, 변수의 자료형이 정해지면(초기화) 자료형을 변경할 수 없습니다. 즉, 선언만 했다면 자료형을 변경 할 수 있습니다.

**var**는 관습적으로 함수나 메소드 내부에 지역 변수를 선언할 때 사용합니다. **class**에서 변수나 **property**를 선언할 때는 타입을 지정합니다. dart 스타일 가이드는 함수나 메서드에서는 var를 사용해 선언하는 것을 권장합니다.

예제

// var Keyword

void main() {
	// 선언
  var box;             // var타입의 변수를 선언만하면 변수의 자료형은 고정되지 않습니다.
  box = 1;
  box = 1.5;
  box = 'minsang';
  print(box);

  // 선언 및 초기화
  var name = '민상';   // 선언과 동시에 초기화를 하면 var타입은 초기화 값의 자료형으로 고정됩니다. 
  name = 'minsang';
  print(name);

}

dynamic

**var**와 동일하게 자료형을 특정하지 않고 변수를 선언할 때 사용합니다. 해당 변수에 저장되는 값에 따라 자료형이 정해지며, **var**와는 다르게 변수의 값이 변경되면 자료형을 변경할 수 있습니다.

**dynamic**은 여러가지 타입을 가질 수 있지만 많이 사용하는 것은 좋지 않습니다.

예제

 // dynamic Keyword

void main() {
  dynamic box2;     // 선언과 동시에 초기화를 해도 dynamic타입은 계속 변경 할 수 있습니다.
  box2 = 10;
  box2 = 'ordem';
  box2 = true;
  print(box2);

}