본문 바로가기
flutter

플러터 - var와 dynamic 타입

by 들풀민들레 2023. 3. 13.

 

본 글은 [Do it! 깡샘의 플러터&다트 프로그래밍] 의 내용을 발췌한 것입니다.

 

 

책의 모든 내용을 저자 직강으로 진행한 강의는 ssamz.com 에서 들으실 수 있습니다.

 

 

다트에서는 변수를 선언할 때 int, double, bool 등 타입을 명시하는 대신 var나 dynamic을 사용할 수 있습니다. var나 dynamic은 타입을 유추하거나 모든 타입의 데이터를 대입할 수 있는 변수를 선언할 때 사용합니다.

 

var data1 = 10;
dynamic data2 = 10;

 

타입 유추 — var


변수를 선언할 때 var를 사용하면 타입을 생략합니다. 이렇게 선언한 변수의 타입은 대입하는 값에 따라 결정됩니다. 즉, 컴파일러가 해당 변수에 대입하는 값을 해석해 타입을 추측합니다.
다음 코드를 보면 no라는 변수를 선언하면서 타입 대신 var를 사용했습니다. no 변수에 타입을 지정하지 않았지만 초깃값으로 10을 대입했으므로 이 변수의 타입은 정수(int)입니다. 따라서 no 변수에 정수가 아닌 데이터를 대입하면 오류가 발생합니다.

 

main() {
	var no = 10;
	no = 20;
	no = 'hello'; // 오류
}

var로 선언한 변수는 초깃값을 대입하면 그 값의 타입으로 결정되지만, 다음처럼 선언과 동시에 값을 대입하지 않으면 타입을 알 수 없어서 dynamic 타입으로 선언됩니다.

 

main() {
	var no2;
	no2 = 10;
	no2 = 'hello';
	no2 = true;
}

 

모든 타입 지원 — dynamic


변수에 타입 대신 dynamic을 사용하면 모든 타입의 데이터를 대입할 수 있습니다. 다음 코드에서는 data라는 변수를 dynamic 타입으로 선언했습니다. 이 변수에는 모든 타입의 데이터를 대입할 수 있습니다.

 

main() {
	dynamic data = 10;
	data = 'hello';
	data = true;
}

 

 

 

책의 모든 내용을 저자 직강으로 진행한 강의는 ssamz.com 에서 들으실 수 있습니다.