본문 바로가기

Framework/Flutter

[Dart] 데이터 타입(Data Types)과 연산자(Operators)

Dart의 데이터 타입과 연산에 대해 알아봅니다.

 

👇👇 Dart 시리즈 👇👇

 

Dart 시작하기

Dart와 친해지기 [Dart] 왜 Dart를 사용하나요? 왜 Dart를 사용하나요? Dart Compiler Dart 컴파일러는 거의 모든 플랫폼에 맞게 컴파일이 가능합니다. 한 언어로 작성한 코드를 여러 플랫폼에서 실행할 수

devzooo.tistory.com

 


 

데이터 타입(Data Type)

Basic

String

문자 또는 문자열을 저장하는 타입입니다.

값 할당시 ''(Single quotes) 또는 ""(Double quotes) 모두 가능합니다.

String msg = 'hi';
msg = "welcome";

값들을 연결할 때는 + 문자로 연결하거나 연달아 나열합니다.

String msg = 'hi '
	'welcome '
	'nice to meet you!'
	;

 

bool

bool alive = true;

 

int

int age = 11;

 

double

double money = 99.12;

 

num

int 또는 double 타입 모두의 데이터를 저장할 수 있는 타입입니다.

num charge = 12;
charge += 35.7;

 

Collections

List

var numbers = [1, 2, 3, 4];	// List<int>
numbers[1];	// 인덱스 1번째 데이터(2)

▶ collection if

조건에 만족할 때만 특정 데이터를 추가하고 싶을때, list 내부에 if 문으로 검사하여 선택적으로 추가할 수 있습니다.

var isLogin = true;
var nav = [
	'Home',
    'Info',
    if (isLogin) 'User',	// isLogin == true 일때만 추가
];

▶ collection for

마찬가지로 list 내부에 for 반복문을 사용하여 여러 데이터를 추가할 수 있습니다.

var ints = [1, 2, 3];
var order = [
	for (var i in ints) '$i번째',	// 1번째, 2번째, ..
];

 

Map

key-value 구조로 이루어진 객체 형태의 데이터 타입입니다.

Javascript/Typescript 의 object, Python의 dictionary 와 같습니다.

var info = {
	'name' : 'Judy',
    'age' : '18',
    'region' : 'South Korea',
};

info['region'];	// key가 region인 데이터('South Korea')

 

변하지 않는 상수 map을 만들고 싶으면, const 키워드로 초기화합니다.

const 로 선언된 map에 값을 재할당할 경우 에러가 발생합니다.

var info = const {
	'name' : 'Judy',
};

info['name'] = 'new';	// error

 

Set

각 요소들이 모두 unique하며, 순서가 없는 집합입니다.

Python의 tuple 과 같습니다.

var members = {'one', 'two', 'three',};	// Set<String>
// or
var members = <String>{};

❗주의

빈 집합 선언시 데이터 타입을 명시하지 않으면 map으로 선언됩니다.

var visitors = {};	// Map<dynamic, dynamic>
var visitors = <String>{};	// Set<String>

 

이미 존재하는 데이터를 추가할 경우, 집합에 중복 데이터가 있다면 추가하지 않습니다.

var items = {'pc', 'phone', 'watch',};
items.add('phone');	// 추가되지 않음

 

연산자(Operators)

산술 연산

  • + (합)
  • - (차)
  • * (곱)
  • / (나눗셈)
  • ~/ (정수 나눗셈)
  • % (나머지)
  • a++
    a 사용 후 a + 1
  • ++a
    a + 1 연산 후 사용
  • a--
    a 사용 후 a - 1
  • --a
    a - 1 연산 후 사용

 

동등 및 관계 연산

  • == (같다)
  • != (같지 않다)
  • >, < (크다, 작다)
  • >=, <= (크거나 같다, 작거나 같다)

 

타입 관련

as

특정 데이터 타입으로 변환합니다.

String strNum = '123';
strNum as int;

 

is

변수가 특정 데이터 타입인지 확인합니다.

if (user is Member) {
	// 타입체크
}

 

is!

변수가 특정 데이터 타입이 아닌지 확인합니다.

if (user is! Member) {
	// 타입체크
}

 

값 할당하기

  • =
  • ??=
    값이 null일 경우에만 할당하고, null이 아닐 경우 기존 값을 유지합니다.
    name ??= 'anon';​
  • a += 1
    a = a + 1
  • a -= 1
    a = a - 1

 

논리 연산

  • !
  • ||
  • &&

 

조건 연산

  • a ? b : c (a == true 이면 b, 아니면 c)
  • a ?? b (a가 null이면 b, 아니면 a)

 

 

💻 참고
https://dart.dev/language/built-in-types

 

 

728x90

'Framework > Flutter' 카테고리의 다른 글

[Dart] 함수(Function)와 클래스(Class)  (3) 2024.03.16
[Dart] 변수 선언 키워드  (0) 2024.03.14
[Dart] 왜 Dart를 사용하나요?  (16) 2024.03.10