Dart의 데이터 타입과 연산에 대해 알아봅니다.
👇👇 Dart 시리즈 👇👇
데이터 타입(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
'Framework > Flutter' 카테고리의 다른 글
[Dart] 함수(Function)와 클래스(Class) (3) | 2024.03.16 |
---|---|
[Dart] 변수 선언 키워드 (0) | 2024.03.14 |
[Dart] 왜 Dart를 사용하나요? (16) | 2024.03.10 |