개발/Dart & Flutter

[Dart] Built in Types

devhooney 2025. 1. 28. 17:04
728x90

다트의 기본 타입에 대해서 알아보자!!

 

 

1. Numbers

 

다트에서 Numbers는 두 가지이다.

- int

플랫폼에 따라 64비트 이하의 정수 값을 갖는다. 기본 플랫폼에서 int값은 -2^64에서 2^63 - 1 사이일 수 있다. 웹에서 정수 값은 JavaScript 숫자(소수 부분이 없는 64비트 부동 소수점 값)으로 표시되며 -2^53에서 2^53 - 1일 수 있다.

 

 

- double

IEEE 754 표준에서 지정한 64비트(배정밀도) 부동 소수점 숫자.

 

 

int와 double은 모두 num의 하위 타입. num 타입에는 +, -, / 및 *와 같은 기본 연산자가 포함되며 사용할 수 있는 다른 메소드로는 abs(), ceil() 및 floor() 등이 있다. (>>와 같은 비트 연산자는 int 클래스에 정의되어 있습니다.) num과 그 하위 타입에 원하는 메소드가 없으면 dart:math 라이브러리에 있을 수 있다.

 

 

정수는 소수점이 없는 숫자.

var x = 1;
var xHex = 0xDEADBEEF;

 

 

숫자에 소수가 포함되어 있으면 실수.

var y = 1.1;
var yExponents = 1.42e5;

 

 

변수를 num 타입으로 선언 가능. 이 경우 변수는 정수, 실수 둘 다 가질 수 있다.

num x = 1; // x는 int와 double 값을 모두 가질 수 있습니다.
x += 2.5;

 

 

정수 리터럴은 필요한 경우 자동으로 double로 변환된다.

double z = 1; // double z = 1.0와 똑같습니다.

 

 

 

문자열을 숫자로 바꾸는 방법.

// String -> int
var one = int.parse('1');
assert(one == 1);

// String -> double
var onePointOne = double.parse('1.1');
assert(onePointOne == 1.1);

 

 

 

숫자를 문자열로 바꾸는 방법.

// int -> String
String oneAsString = 1.toString();
assert(oneAsString == '1');

// double -> String
String piAsString = 3.14159.toStringAsFixed(2);
assert(piAsString == '3.14');

 

 

 

 

 

2. String

Dart에서 문자열은 UTF-16 코드 단위이다. '나 "를 사용해서 문자열을 만들 수 있다.

자바스크립트와 유사하다.

var s1 = '작은따옴표';
var s2 = "큰따옴표";
var s3 = '이건 \'를 쓰는 방법';
var s4 = "이건 '을 쓰는 방법";

 

 

변수를 문자열에 합치기 위해서는 ${변수}를 사용하면 된다.

자바스크립트와 유사하다.

var s = '안녕!';

assert('$s 넌 누구야' == '안녕! 넌 누구야');

 

 

문자열 연결은 +로 가능

자바스크립트와 유사하다.

// 인접한 문자열 리터럴로 연결
var s1 = 'String '
    'concatenation'
    " works even over line breaks.";
assert(s1 ==
    'String concatenation works even over '
    'line breaks.');

// + 연산자로 연결
var s2 = 'The + operator ' + 'works, as well.';
assert(s2 == 'The + operator works, as well.');

 

 

여러 줄을 문자열로 만들 때는 ''' 나 """ 사용

var s1 = '''
You can create
multi-line strings like this one.
''';

var s2 = """This is also a
multi-line string.""";

 

 

 

 

 

3. Booleans

Boolean 값을 나타내기 위해 Dart에는 bool이라는 타입이 있다. bool 타입은 true 및 false 값을 가지며, 둘 다 컴파일 타임 상수다.

728x90

 

 

 

 

 

 

4. Lists

Dart에서 List 리터럴은 대괄호([])로 묶인 쉼표로 구분된 표현식 또는 값으로 표시된다.

var list = [1, 2, 3];

 

 

String값 예시

var list = [
  'Car',
  'Boat',
  'Plane',
];

 

 

여러 값을 컬렉션에 삽입하는 간결한 방법을 제공하는 스프레드 연산자(...)와 널 인식 스프레드 연산자(...?)를 사용.

var list = [1, 2, 3];
var list2 = [0, ...list];

 

 

 

 

5. Set

Dart의 Set은 고유한 항목의 순서가 없는 컬렉션. Set에 대한 Dart 지원은 Set 리터럴 및 Set 타입에 의해 제공된다.

var aaa = {'a', 'b', 'c', 'd', 'e'};

 

 

 

 

 

6. Maps

일반적으로 맵은 key와 value를 연결하는 개체. 키와 값 모두 모든 타입이 가능하다. 각 key는 고유하지만 value는 동일한 값을 여러 번 사용할 수 있다. 맵에 대한 Dart 지원은 맵 리터럴 및 맵 타입으로 제공된다.

var gifts = {
  // Key:    Value
  'first': 'partridge',
  'second': 'turtledoves',
  'fifth': 'golden rings'
};

var nobleGases = {
  2: 'helium',
  10: 'neon',
  18: 'argon',
};

var gifts = Map<String, String>();
gifts['first'] = 'partridge';
gifts['second'] = 'turtledoves';
gifts['fifth'] = 'golden rings';

var nobleGases = Map<int, String>();
nobleGases[2] = 'helium';
nobleGases[10] = 'neon';
nobleGases[18] = 'argon';

 

 

 

 

 

 

- 참고

https://judongseok.gitbook.io/dartlang/language-guide/built-in-types

 

 

 

728x90