본문 바로가기
Flutter 공부

Dart: variables

by 두 그루 2023. 4. 3.

Flutter를 배우기 전에 Dart를 이해하고자 공부한 내용을 기록한다.

 

참고:

https://nomadcoders.co/dart-for-beginners/lobby

 

Dart 시작하기 – 노마드 코더 Nomad Coders

Flutter 앱 개발을 위한 Dart 배우기

nomadcoders.co

 

main 함수

void main() {
  print('hello World!');
}

main 함수가 필수이며, c언어처럼 ; 콜론을 붙여야 한다. 일부러 없애는 경우도 있기도 한다.

 

 

 

var

void main() {
  var name1 = "No.1 Name";
  String name2 = "No.2 Name";
  print(name1 + name2);
  // No.1 NameNo.2 Name
}

var이란 변수이며, data type이 아닌 var만 쓰면 literal 값을 토대로 type을 guess한다. 한 번 설정되면 데이터 타입은 바꿀 수 없다.

 

 

 

dynamic

void main() {
  var name;
  // or dynamic name;
  if (name is String) {
    // name can be used as String
  }
  if (name is int) {
    // name can be used as int
  }
}

데이터 타입이 변수 선언시에 결정되지 않고 후에 결정되는 타입이다. 변수의 타입에 따라 실행할 수 있는 메소드가 다르기 때문에 조건문으로 확인하여 실행하면 된다.

 

 

 

nullable variables

void main() {
  // name can be null or String
  String? name = 'Hi';
  name?.isEmpty;
  // these are same
//   if (name != null) {
//     name.isEmpty;
//   }
}

코틀린에서 배운 것처럼 dart에서도 null 값을 가질 수 있는 데이터 타입이 따로 있다. 데이터 타입 옆에 ?를 붙여서 정의하면 된다. 그리고 만약 null 값을 가진다면 특정 메소드를 실행하지 못하니, 변수의 이름 옆에 ?를 붙여 null이 아닌지를 확인할 수 있다.

 

 

 

final

void main() {
  final num = 0;
  // final can be set only once
  // num = 1;
}

final 변수란 상수와 비슷하다. 한 번 설정해두면 값을 변경할 수 없다. 나중의 constant와 조금의 차이가 있다.

 

 

 

late

void main() {
  late final num;
  // late can be set after defined
  num = 1;
}

late가 붙으면 변수를 선언할 때가 아니라 나중에 값을 정의할 수 있다.

 

 

 

constant

void main() {
  const text = "Hello";
  // const can not be changed
  // text = "hi";
}

dart에서의 constant는 compile-time으로, compile 이전에 값을 알아야 한다. 예시로 그 값이 API로부터 오거나 사용자가 화면에서 입력해야 하는 값이라면 그건 const가 아닌 final이나 var가 되어야 한다.

'Flutter 공부' 카테고리의 다른 글

Dart: class  (0) 2023.04.06

댓글