[Dart] Dart 시작하기 - Data Type

·2025년 11월 4일

Dart/Flutter

목록 보기
2/2

객체 지향 언어 dart

  • 아래 자료형을 포함한 대부분의 자료형과 function은 object, class로 이루어져 있음
void main() {
  String name = "쩡";
  bool alive = true;
  int age = 11;
  double money = 1.11;
  
  // num : int와 double의 부모 class
  num x = 1;
  x = 1.2;
}

list

list 변수를 만드는 두가지 방법

  1. var 키워드 사용
void main() {
  var numbers = [1, 2, 3, 4];
}
  1. List<int> 명시
void main() {
  List<int> numbers = [1, 2, 3, 4];
}
  • List는 collection if, collection for를 지원

collection if

if로 존재할 수도, 존재하지 않을 수도 있는 요소로 작성 가능

void main() {
  var giveMeFive = true;
  var numbers = [
    1,
    2,
    3,
    4,
    if (giveMeFive) 5, // == if(giveMeFive) {numbers.add(5);}
  ];
  print(numbers);
}
  • giveMeFive 값이 true일 경우 5를 리스트 요소로 가짐

collection for

void main() {
  var oldFriends = ['nico', '쩡'];
  var newFriends = [
    'lewis',
    'ralph',
    'darren',
    for (var friend in oldFriends) "🩵 $friend",
  ];
  //   for (var friend in oldFriends) {
  //     newFriends.add();
  //   } collection for를 사용하여 대체 가능
  print(newFriends);
}

  • collection if는 메뉴나 navigation bar를 만들 때 유용하게 사용 가능

List 자동 Formatting 방법

  1. 리스트의 마지막 변수 뒤에 ,(쉼표)를 붙인다.
  2. 코드를 전체 선택 단축키(Ctrl+A)를 이용해서 전체 선택한다.
  3. 자동 Formatting 단축키 (Shift+Ctrl+F)를 사용.

String interpolation

String interpolation : text에 변수 추가

단순 변수 값을 출력하고 싶을 때 String interpolation

void main() {
  var name = "쩡";
  var greeting = 'Hello everyone, my name is $name. Nice to meet you!';
  print(greeting);
}

  • 변수가 이미 존재할 경우 $ 기호를 사용 -> $변수명

계산을 실행할 때 String interpolation

void main() {
  var name = "쩡";
  var age = 23;
  var greeting = 'Hello everyone, my name is $name and I\'m ${age + 2}.';
  print(greeting);
}

  • 중괄호 사용 -> ${계산할 내용}

Map

map : key와 value를 연결하는 객체, 동일한 값을 여러번 사용할 수 있음(== Javascript/TypeScript의 object, python의 dictionary)

void main() {
  //   var player = {'name': '쩡', 'xp': 99.01, 'superpower': false};
  // key: String, Value: object(any) -> 컴파일러가 자료형 유추
  Map<int, bool> player = {1: true, 2: false, 3: true};
  Map<List<int>, bool> boolean = {
    [1, 2, 3, 5]: true,
  };
  
  List<Map<String, Object>> players = {
    {
      'name': 'nico',
      'xp': 10000.1,
    },
    {
      'name': 'nico',
      'xp': 10000.1,
    },
  }
}
  • key와 value로 이루어진 API 구조의 데이터를 정의할 때 Map 대신 class를 사용하는 것이 더 좋음

Set

Set과 List의 차이

  • Set에 속한 모든 아이템은 Unique, Sequence(순서가 있음)
  • 중괄호 사용
  • 요소가 항상 하나씩만 있어야 하면 사용
  • List = python의 list / Set = python의 Tuple
    [Set]
void main() {
  var numbers = {1, 2, 3, 4};
  // == Set<int> numbers = {1, 2, 3, 4,};
  numbers.add(1);
  print(numbers);
}


[List]

void main() {
  List numbers = [1, 2, 3, 4];
  numbers.add(1);
  print(numbers);
}

0개의 댓글