Dart에는 변수 선언시 다양한 자료형을 지원합니다.
그 중에서 var
와 dynamic
라는 일반적인 자료형이 아니라 입력된 정보를 통해 타입을 추론해서 데이터 형식을 저장합니다.
var
의 경의 경우 추론된 타입이 한번 입력되고 나면 다른 타입을 저장할 수 없습니다.
var name = 'var test';
print(name); // 출력 var test;
name = 123; // Error 발생
위 코드 처럼 String이 입력된 var에 int의 값을 입력할려고 하면 에러가 발생합니다.
dynamic
의 경우 특수한 타입입니다. var
와의 큰 차이점은 어떤 형식이라도 항상 입력이 가능한 점입니다.
dynamic name = 'var test';
print(name); // 출력 var test;
name = 123; // name에 123 입력
print(name); // 123
위 코드 처럼 dynamic의 경우 에러 발생이 하지 않습니다.