오답노트

[Dart] Data Type 본문

Dart

[Dart] Data Type

권멋져 2023. 5. 9. 19:01
 

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

Flutter 앱 개발을 위한 Dart 배우기

nomadcoders.co

자료형들

Basic Data Type

void main() {
  String name = 'name';
  bool alive = true;
  int age = 12;
  double money = 69.99;
  
  // 위 자료형은 모두 클래스
  // int와 double은 num 클래스부터 상속된 클래스
  
  num x = 12;
  x = 1.1;
}

앞에 포스트에서 언급했듯 숫자관련 자료형은 num을 부모 클래스로 가지고 있다.

 

List

void main() {
  var givemefive = true;
  var numbers = [1,2,3,4,
                if(givemefive) 5, // collection if
                ];
  
  List<int> nums = [1,2,3,4,];

  numbers.add(1);
  
}

var 로 선언한 변수에 대괄호를 사용해 List를 선언할 수 있고, List를 통해 명시적으로 선언할 수도 있다.

List는 배열처럼 인덱스로 접근하며 원소에는 어떠한 자료형도 들어갈 수 있다.

 

재미있는 점은 collection if라는 기능인데, List를 생성할 때 if문을 사용하여 조건부로 원소를 넣을지 말지 결정할 수 있다.

 

Collection for

void main() {
  var oldFriends = ['anm','sma'];
  var newFriends = ['aws','das','toy',
                   for(var friend in oldFriends) "!$friend"];
// Collection for
print(newFriends);

}

위에서 collection if를 통해 List 생성시 if문으로 원소 입력 여부를 결정할 수 있었다.

collction for는 List 생성시 for으로 반복적인 작업을 통해 원소를 입력할 수 있다.

Map

void main() {

  var player = {
    'name' : 'kse',
    'xp' : 19.99,
    'superpower' : false,
  }; // Map<String, Object> -> Object은 어떤 자료형이던 올 수 있다는 의미
  
  
  Map<int,bool> player2 = {
    1 : false,
    2 : true,
    3 : false,
  }; 
  
    Map<List<int>,bool> player3 = {
    [1,2,3] : false,
    [1,2,4] : true,
    [1,2] : false,
  }; 

}

Map 해쉬 자료형으로 Key와 Value로 이루어진 자료형이다.

var로 변수를 선언해 { 를 사용해 Map을 선언할 수 있고, 명시적으로 Map을 사용해 선언할 수 있다.

Key 한 개의 자료형으로 통일 해야하지만 Value는 원하는 자료형으로 입력할 수 있다.

 

Set

void main() {
  var numbers = {1,2,3,4};
  Set<int> nums = {1,2,3,4};
  
  numbers.add(1);
  print(numbers);
}

Set은 집합 자료형으로 중복을 허용하지 않는다.

 

String Interpolation

void main() {
  // String Interpolation : 스트링에 단어를 추가하는 방법
  
  var name = 'name';
  var age = 10;
  
  var greeting = "hi i'm $name and ${age+2}";
  
  print(greeting);
  
}

문자열에 $로 변수를 추가하여 사용할 수 있다.

'Dart' 카테고리의 다른 글

[Dart] 함수  (0) 2023.05.09
[Dart] 기본적인 자료형  (0) 2023.05.09