dynamic 과 var 의 차이점

DevDiary·2024년 9월 6일

Flutter

목록 보기
3/5
post-thumbnail

dynamic?

dynamic이란 모든 데이터 타입을 포함한 변수이다.

아래와 같은 코드가 있다고 가정했을 때

void main() {
  String name = 'flutter';

  name = 10;

  print(name);
}

초기에 선언한 데이터 타입과 새로 할당된 타입이 다르기 때문에
에러 메세지가 뜨는 것을 확인할 수 있다.

그러나 변수선언을 dynamic으로 했을시

10이 문제없이 잘 프린트 되는 것을 확인할 수 있다.
dynamic은 모든 데이터 타입을 포함하고 있기 때문에 이러한 할당이 가능한 것.

자유롭지만 그만큼 타입에러를 잡기 힘들기 때문에 권장되지 않는 방법이라고 한다.
(갑자기 머릿속에 스쳐지나가는 JS...)


여기서 궁금한 점은 dynamic은 var와 어떤 것이 다를까?

dynamic 과 var 의 차이점

var는 최초 선언 시 타입을 추론한다.
즉 할당된 변수 값이 문자열인지, 숫자인지 불리언인지를 var가 판단한다는 것

그렇기 때문에 String으로 최초 언급했을 때와 동일한 에러가 뜬다.

dynamic이 굉장히 유연하고 자유롭지만 남용했을 시 그 파장은 감당하기 어려울테니...
flutter 공식문서에서도 사용을 권장하지 않는다고 한다.

profile
약간의 경험에 약간의 운을 더하다

0개의 댓글