본문 바로가기
Flutter/개념

Dart 기본기 - dynamic vs var 차이

by 윤숩 2025. 2. 3.
728x90
728x90

 

  var dynamic
타입 결정 시점 컴파일 타임 런타임
초기값 필수 여부 필수 (컴파일러가 추론) 필요 없음
타입 변경 가능 여부 ❌ 변경 불가 (한 번 결정되면 고정) ✅ 변경 가능
컴파일 시 타입 체크 ✅ 체크됨 ❌ 체크되지 않음
성능 ✅ 빠름 (컴파일러가 최적화 가능) ❌ 느림 (런타임 처리 필요)
오류 발생 시점 컴파일 시 오류 런타임 오류 발생 가능

 


예제

[ var ]

var num = 10; // 컴파일러가 int로 추론
Console.WriteLine(num.GetType()); // 출력: System.Int32

var text = "Hello"; // string으로 추론
Console.WriteLine(text.GetType()); // 출력: System.String

 

🚫 잘못된 사용 (타입 변경 불가)

var num = 10; num = "Hello"; // 오류! 'int'에서 'string'으로 변경 불가
 

 

[ dynamic ]

dynamic value = 10;
Console.WriteLine(value.GetType()); // 출력: System.Int32

value = "Hello"; // 타입 변경 가능
Console.WriteLine(value.GetType()); // 출력: System.String

 

🚨 문제점 (런타임 오류 가능)

dynamic text = "Hello";
Console.WriteLine(text.Length); // 가능 (string의 Length 사용)

text = 100; 
Console.WriteLine(text.Length); // 런타임 오류 발생! (int에는 Length 없음)
728x90
728x90

댓글