관리 메뉴

나만을 위한 블로그

[Dart] 자료형 본문

Flutter

[Dart] 자료형

참깨빵위에참깨빵_ 2022. 11. 12. 23:31
728x90
반응형

Dart의 공식문서에 잘 설명돼 있긴 하지만 영어로 돼 있어서 번역해 보기 귀찮기 때문에 한글로 정리해둔다.

Dart의 자료형 종류는 아래와 같다.

 

 

Runes는 클래스인데 사용법을 보니 문자의 유니코드 숫자를 가져올 때 사용하는 것 같아 생략한다.

 

  • int
  • double
  • String
  • bool
  • List<T>
  • Set
  • Map<K, V>

 

이제 하나씩 확인해본다.

 

int

 

 

https://dart.dev/guides/language/language-tour#numbers

 

A tour of the Dart language

A tour of all the major Dart language features.

dart.dev

플랫폼에 따라 64비트 이하의 정수값이다. 기본 플랫폼에서 값은 -2^63에서 2^63-1 사이일 수 있다. 웹에서 정수값은 자바스크립트 숫자로 표시되며 -2^53에서 2^53-1일 수 있다

 

공식문서에서 말하는 기본 플랫폼은 안드로이드, iOS를 말하는 것으로 생각된다. 앱과 웹에서 사용될 수 있는 범위가 각각 다르니 주의만 하면 될 것 같다. 다른 언어들과 같이 사용법은 대충 아래와 같다.

 

void main() {
  int number1 = 1;
  int number2 = 2;
  print(number1 + number2);	// 3
}

 

double

 

Dart에는 float 자료형이 없고 double만 있다.

 

void main() {
  double a = 1.0;
  double b = 1.0;
  print(a + b);	// 2
}

 

String

 

설명이 필요없다. 특이점이라면 코틀린처럼 문자열 안에 $를 사용해서 변수값을 바로 표시할 수 있다.

 

void main() {
  int num = 1;
  String a = "하이 $num";
  print(a);	// 하이 1
}

 

그래서 이렇게도 사용할 수 있다.

 

void main() {
  int num1 = 1;
  int num2 = 2;
  String a = "$num1 + $num2는 ${num1 + num2}";
  print(a);	// 1 + 2는 3
}

 

bool

 

boolean으로 만들어주지 애매하게 bool이라고 만들어놔서 자꾸 헷갈린다. 그 외에는 별 거 없다.

 

void main() {
  bool isReady = false;
  bool isClicked = true;
}

 

List

 

List를 만들고 직접 값을 넣을 때는 [] 안에 넣는다. List 우측에 제네릭을 쓰는 것은 똑같다.

코틀린처럼 특정 인덱스에서 값을 찾을 때 [] 안에 숫자를 넣고 그 위치의 값을 가져올 수 있다.

 

void main() {
  List<int> numbers = [1, 2, 3, 4, 5];
  print(numbers);		// [1, 2, 3, 4, 5]
  print("numbers의 1번 인덱스 값 : ${numbers[1]}");	// numbers의 1번 인덱스 값 : 2
}

 

Map

 

Map을 만들고 직접 값을 넣을 때는 {} 안에 넣는다. List와 똑같이 Map 우측에 키값들의 제네릭을 쓴다.

키에 매핑된 값을 가져올 수 있지만 값으로 키를 가져올 수 없다. 대신 키밸류들을 각각 출력해서 확인할 수는 있다.

 

void main() {
  Map<String, String> map = {
    "a" : "에이",
    "b" : "비"
  };
  
  print(map);	// {a: 에이, b: 비}
  print("a키에 매핑된 값 : ${map["a"]}");	// a키에 매핑된 값 : 에이
  print("에이 value에 매핑된 키 : ${map["에이"]}");	// 에이 value에 매핑된 키 : null
  print("map의 key들만 출력 : ${map.keys}");	// map의 key들만 출력 : (a, b)
  print("map의 value들만 출력 : ${map.values}");	// map의 value들만 출력 : (에이, 비)
}

 

Set

 

Set도 다른 언어에서의 Set과 별 차이 없다.

 

void main() {
  final Set<String> nameSet = {"a", "b", "a"};
  print(nameSet);	// {a, b}
  print(nameSet.contains("c"));	// false
}

 

반응형
Comments