본문 바로가기
다트(Dart)

다트(Dart) 변수

by 인생즐겜러 2023. 3. 10.
728x90
반응형

 

 

 

순서

  • var
  • dynamic
  • final
  • late
  • const

 

 

 

 

 


 

 

 

 

 

다트라는 언어는 기본적으로 자바랑 비슷한 점이 매우 많다.

코딩의 순서가 순차적으로 진행되는 것부터 객체 지향인 것까지.

 

 

 

다트의 변수 타입 지정에는 여러가지 방식이 있다.

그 중 몇개만 보자면

 

 

 

var

특정 타입을 지정하지 않았을 때, 들어가는 값에 따라 자동으로 형변환을 해주는 타입.

기본적인 int, String 같은 것은 동일하게 사용된다.

 

다트에서

int / String 같은 명시적인 타입 선언은 class 의 property를 작성할 때 사용하도록 권장하고 있고

var는 지역변수에서 사용하도록 권장한다.

 

 

 

void main() {
  
  print('안녕 디지몬');
  
  // 변수와 코딩 순서
  var name = '연습이름';
  print(name);
  
  name = '바뀐이름';
  print(name);
  
  
  
  // 변수 타입
  
  // 정수 integer
  int num1 = 2;
  int num2 = 3;
  print(num1 + num2);
}



// 결과
안녕 디지몬
연습이름
바뀐이름
5

 

 

 

 

 


 

 

 

 

 

dynamic

 

해당 타입은 받는 데이터의 타입이 어떤 것일지 모를 때, 유동적으로 형변환을 하기 위해 사용하는 타입이다.

필요할 때만 쓰는 것을 추천.

 

 

 

void main() {
  dynamic name;
  int a;
  
  if(name is String){
    a = name.length;
  }
  if(name is int){
    name.isOdd;
  }
}

 

 

 

 

 


 

 

 

 

 

final

 

단 한번만 값 세팅이 가능하고 그 이후 변경이 불가능하게 만들어주는 키워드다.

아래의 예처럼 'String' 이렇게 명시적으로 타입을 지정해도 되지만

안하더라도 var 처럼 다트가 알아서 타입을 지정한다.

 

 

 

void main() {
  fianl name = 'jin';
  
  // error
  name = 'jin';
  
  
  final String name2 = 'Lee';
  

}

 

 

 

 

 


 

 

 

 

 

late

 

초기값이 없이 변수 선언을 가능하게 한다.

var / final 앞에 사용한다. (왜냐하면 나중에 값이 들어오기 때문에 명시적 형 선언이 안된다.)

flutter 사용 시, data fetching 할 때 유용하다.

 

 

void main() {
  late fianl name;  
  name = 'jin';
  
  
  late var name2;

}

 

 

 

 

 


 

 

 

 

 

const

 

final이랑 비슷하지만 다르다.

final은 그냥 값을 한번 세팅하면 끝이기 때문에 세팅의 타이밍이 중요하지 않다.

const는 컴파일이 될 때 값을 무조건 알고 있는 경우에만 사용한다. 

즉, API 값을 받아오는 변수에는 사용할 수 없다. 사용자한테 값을 받아오는 경우도 불가하다.

미리 해놓는 하드 코딩에 적합한 변수라는 말.

 

 

 

void main() {
  const Max_Value = 100;  

}

 

 

 

 

 

 

 

 

728x90
반응형

댓글