크로스 플랫폼/Flutter <Dart>

[Dart] Dynamic Type에 대한 이해

TaeGyeong Lee 2023. 9. 22. 16:09

개요

  • Dart언어에서 Type annotation은 필수가 아닌 선택
  • 따라서 Type annotation 을 명시하지 않았을 경우 (== var 으로 변수를 선언한 경우), 기계는 맥락을 파악하여 자료형을 추론
  • 기계는 추론에 실패한 변수에 대해선 'dynamic' 자료형으로 지정

 

사용 예

dynamic 변수를 선언하는 예제입니다. dynamic은 다른 자료형이 될 수 있는 타입입니다.

void main(){
  dynamic isThisString = 'hi';
  	isThisString = 1;
  
  if(isThisString is int){
    print("Not a String");
  }
}
  // 결과 : Not a String

 

위의 특성을 가지기에 Nullable으로 선언하는 것은 의미가 없습니다.

dynamic? isThisString = "Hi";

// Warning : The '?' is unnecessary because 'dynamic' is nullable without it.

 

참고 자료

 

Effective Dart: Design

Design consistent, usable libraries.

dart.dev