1. var


void main() {
    var nmae = 'james'
    name = 'steven'
}

관습적으로 함수나 메서드 내부에 지역 변수를 선언할 때에는 var를 사용한다.

메서드 안에서 지역변수를 선언하는 상황이라면 var를 사용하는 게 dart 스타일 가이드의 권장 방식이다.

2. Type 명 지정


void main() {
    String nmae = 'james'
    name = 'steven'
}

관습적으로 class에서 변수나 propert를 선언할 때에는 타입을 지정해준다.

3. dynamic


dynamic은 여러가지 타입을 가질 수 있는 변수에 쓰는 키워드이다.

void main() {
    dynamic nmae = 'james'
      name = 'steven'
      name = 20
      if(name is String){
        print("name")
      }
      if(name is int){
        print("not name")
      }
}

var도 위처럼 사용할 수 있지만 dynamic은 dart가 보호해준다는 차이점이 있다. 예를 들면 위와 같이 type에 따라 dart가 분기를 할 수 있다. dynamic은 불가피한 상황에서만 사용하는 것이 좋다.

4. final