[왕초보 무료 프로그래밍 언어 강의] [Dart] #6 — Var, Dynamic 타입

Ji Ho Choi
코드팩토리
Published in
3 min readOct 15, 2020

--

Var 타입

void main(){
var name = '코드팩토리';
print(name); name = '레드벨벳'; print(name); name = 1; print(name);
}
  • var 타입은 유저가 직접 변수의 타입을 지정하지는 않지만 변수 값에 의해서 임의적으로 변수의 타입이 자동으로 지정이 된다. 예를 들어 첫번째 줄의 코드는 name 변수의 변수 타입을 지정하지는 않았지만 변수의 값이 String 이기 때문에 name 변수의 변수 타입은 String 으로 지정이 된다.
  • var 타입은 한번 간접적으로 변수의 타입이 지정이 되면 변수 값을 같은 타입의 다른 값으로 바꿀 수 있다.
  • var 타입의 값은 첫번째 선언된 같은 타입으로 변경이 가능하지만 아예 다른 타입으로 변경하는건 불가능하다.
  • 복잡한 타입을 사용해야 할때 var 타입을 사용 함으로서 편의성을 높일 수 있지만 일반적으로 타입을 직접 작성을 해주면 나중에 코드를 다시 볼때 또는 다른 엔지니어가 코드를 읽을때 이해하기 쉽기 때문에 가능하다면 var 타입은 사용하지 않는게 좋다.

Dynamic 타입

void main(){
dynamic name = '코드팩토리';
print(name);name = '레드벨벳'; print(name); name = 1; print(name);
}
  • dynamic 타입은 var 타입과 반대로 이미 타입이 확정된 상태에서 변수의 타입을 변경할 수 있다. 기존에 작성했던 코드의 var 타입만 dynamic 타입으로 변경해도 코드가 실행이 되는 걸 볼 수 있다.
  • dynamic 타입의 경우 var 타입 보다도 엔지니어가 변수의 타입을 유추하기 힘들기 때문에 거의 사용되지 않지만 가끔 필요할때가 있어서 이런게 있다는 정도만 인지를 해두는게 좋다.

var 의 dynamic 화

void main(){
var name;
name = '코드팩토리' print(name); name = '최지호'; print(name); name = 1; print(name);
}
  • dynamic 타입을 사용하지 않고 var 타입을 사용해도 변수의 타입을 매번 바꿀 수 있는 방법이 있다. 변수를 선언할때 변수의 이름만 선언을 하고 변수의 값을 지정하지 않아도 되는데 이럴 경우 변수의 타입이 지속적으로 변경되어도 dynamic 타입처럼 에러를 생성하지 않는다.
  • 일반적으로 var 타입의 변수를 변수의 값 없이 지정하는 경우는 거의 없기 때문에 이런게 있다고 알아두기만 하면 좋다.

--

--