Flutter - dynamic 타입에 대해 (개념, 구문, 사용 예시)

 

dynamic

  • Dart언어에서 제공하는 특별한 타입
  • 모든 유형의 값을 나타낼 수 있는 동적 타입
  • 컴파일러가 해당 값을 검사하지 않고 직접 실행

설명

추론할 수 있는 데이터타입은 명시적으로 정의할 필요가 없습니다.

그러나 명시된 데이터타입의 문제점은 이 변수가 항상 한가지의 데이터타입을 유지하여야 한다는 것입니다.

만약 때에 따라서 변수를 다른 데이터타입으로 할당할 경우가 생기는데,

이런 경우를 고려하여 보다 동적인 변수를 만들고 싶을 때 dynamic 키워드를 사용하여 재할당 할 수 있습니다.

쉽게 말하면, 변수에 데이터타입을 따지지 않고 값 저장이 가능하다는 이점이 있습니다.


dynamic의 필요성

String message = 'hello?';
message = 1234;
// error : A value of type 'int' can't be assigned to a variabled of type 'String'.

위의 코드와 같이 문자열로 명시된 변수는 문자열의 값만 받을 수 있습니다.

하지만 코드 설계에 따라 부득이하게 다른 타입의 값을 받을 상황이 생길 수 있습니다.

이러한 경우, 문자열(String)이 아닌 dynamic 타입을 사용할 수 있습니다.


구문

  • 변수 선언시 데이터타입에 dynamic 키워드를 사용하여 값 저장
dynamic 변수명 = 값;

사용 예시

// 문자열의 값 'message' 변수에 저장
dynamic message = 'Hello Dart!';

// 문자열 타입 값을 가지지만 dynamic 타입이므로 정수형의 값도 저장 가능
message = 999;

참고