앱 개발/Dart

Dart Data Types(데이터 타입)

태기 2024. 5. 8. 08:07

1. basic Data Types

void main() {
    String name = 'taek' or "taek";	// String (' 와 " 둘다 가능)
    boole alive = true;	// boolean
    int age = 12;	// integer
    double money = 12.99;	// double

    num x = 12;	// int와 double의 부모클래스 num
    num = 1.12;
}

Dart는 object와 class로 이루어져 있다는 것을 꼭 기억하자. 

완전한 객체지향언어이다.

 

 

2. Lists

void main() {
    var numbers = [1, 2, 3, 4];
    // List<int> numbers = [1, 2, 3, 4];	// 타입으로 선언도 가능
}

코드를 입력하고 numbers에 마우스오버를 해보면 type: List<int> 인 것을 알 수 있다.

 

 

Tips.

list 마지막에 , 를 적고 다음 단축키를 입력하면 자동으로 formatting해준다. (DartPad)

Window : Alt + Shift + F

Mac : Options + Shift + F

 

 

Dart에서 List는 collection if / collection for 을 지원한다.

 

- collection if

조건에 따라 List에 데이터를 결정한다.

 

원래는 이렇게 추가해야하는 코드를 오른쪽처럼 작성할 수 있다.

 

collection for 는 String Interpolation을 이해하고 그 다음 설명하겠다.

 

 

3. String Interpolation

void main() {
    var name = 'taek';
    var age = 10;
    var greeting = 'Hello everyone, my name is $name and I\'m ${age+2} nice to meet you!';
    print(greeting);
}

원하는 부분에 '$' 표시를 써서 변수명을 적어주면 된다. 

age같이 계산도 가능하다. ( {} 중괄호 써줘야함)

 

나는 항상 ${} 을 쓰려고 한다.

 

 

4. Collection For

void main() {
    var oldFriends = ['kim', 'park'];
    var newFriends = [
    'na',
    'lee',
    for(var friend in oldFriends) '!@ $friend',
    ];
    print(newFriends);
}

새로운 배열을 생성하는데 이전에 있던 리스트에 수정해서 추가하고 싶을 때 사용한다.

 

예를 들면 메뉴나 navigation bar를 만드는데 user가 로그인 전 후에 나타내는 버튼을 추가하고 싶을 때 이 기능이 굉장히 시간을 아껴준다.

 

 

5. Maps

void main() {
    var player = {
        'name': 'taek',
        'xp': 19.99,
        'superpower': false,
    };

    Map<List<int>, bool> map = {
    	[1,2,3,5]: true,
    };
}

 

Dart의 Map은 Java와 같다고 생각하면 된다. key와 value로 이루어져 있다.

 

var로 선언해서 타입추론으로 컴파일러가 결정하게 만들 수도 있고(player), 

타입으로 선언해서 할 수도 있다(map).

 

key와 value 모두 어떤 타입이든 가능하다.

- key에다가 리스트를 넣을 필요는 없겠지만 이렇게도 가능하다

 

만약 API로 받아온 데이터를 저장하려면 Map 보다는 class를 사용하는 것을 추천한다.

 

 

6. Sets

set과 List의 차이는 set은 값들이 유니크하다는 점이다.

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

주의 - List는 대괄호 [] / Set은 중괄호 {}

 

같은 1을 추가해도 위 코드를 작성해서 실행해보면 결과는

{1,2,3,4}

로 나온다.