본문 바로가기
앱/Dart

Dart의 Data Types(list, collection if, collection for, Maps, List, Set)

by devved 2023. 1. 17.
반응형

Basic Data Types

void main() {
  String name = "siha";
  bool alive = true;
  int age = 12;
  double money = 69.99;
  num x = 12.11; // num은 int&double 둘다 가능
}

 

list

// 선언
// list 끝을 ,처리 해주면 알아서 여러줄로 포맷팅 됨

// 방법 1 
 var numbers = [
    1,
    2,
    3,
    4,
  ];

// 방법 2
  List<int> numbers2 = [5, 6, 7, 8];

 

collection if

void main() {
  // collection if
  var giveMeFive = true;
  var numbers = [
    1,
    2,
    3,
    4,
    if (giveMeFive) 5, // giveMeFive가 true 라면 list에 5를 추가
  ];
  print(numbers);
}

 

string interpolation

text에 변수를 추가하는 방법

void main() {
  // 변수가 이미 존재할 때
  var name = 'siha';
  var greeting = 'Helloe everyone, my name is $name, nice to meet you!';
  print(greeting);

  // 계산이 필요할 때
  var age = 20;
  greeting = "Helloe everyone, my name is $name, I'm ${age + 8}!";
  print(greeting);
}

 

collection for

void main() {
  // collection for
  var oldFriends = ['siha', 'lynn'];

  var newFriends = [
    'lewis',
    'ralph',
    'darrent',
    for (var friend in oldFriends) "💜 $friend",
  ];
  print(newFriends);
}

// 출력 결과 [lewis, ralph, darrent, 💜 siha, 💜 lynn]

 

Maps, List

void main() {
  // mpas
  var player = {
    // 이렇게 여러 자료형이 섞여 있으면 알아서 value를 Object(모든자료형 다 가능)로 인식해줌
    'name': 'siha',
    'xp': 19.99,
    'superpower': false,
    // 다 string으로 적어주면 string만 들어가도록 인식됨
  };

  // 직접 정의해줄수도 있음
  // 예제 1
  // 키는 숫자, 값은 bool으로 고정되어 있는 것
  Map<int, bool> player2 = {
    1: true,
    2: false,
    3: true,
  };

  // 예제 2
  // key intergerList, value는 bool 값
  Map<List<int>, bool> player3 = {
    [1, 2, 3, 4]: true,
  };

  // 예제 3
  List<Map<String, Object>> player4 = [
    {'name': 'siha', 'xp': 454.545},
    {'name': 'momo', 'xp': 454.545},
  ];

  // class 사용을 더 추천!
}

 

Set

void main() {
  // Set
  // set에 속한 모든 값들은 유니크함
  var numbers = {1, 2, 3, 4}; // 중괄호를 사용하여 생성
  Set<int> numbers2 = {1, 2, 3, 4}; // 위와 동일

  numbers.add(1);
  numbers.add(1);
  numbers.add(1);

  print(numbers); // {1, 2, 3, 4}
}
반응형