String
, bool
, int
, double
, num
Dart는 진정한 객체지향언어로 불림
Dart의 function을 포함해 거의 모든 게 object로 이루어져 있기 때문
String, bool, int, double, num 같은 data type들도 class로 이루어져 있기 때문에 실제로 자료형 안에 어떤 게 들어있는지 볼 수 있음
text에 변수를 추가하는 방법
- 변수가 이미 존재할 때 ⇒
$변수명
void main() {
var name = 'atlns';
var greeting = 'Hello everyone, my name is $name, nice to meet you!';
print(greeting);
}
${변수명을 포함한 계산 내용}
void main() {
var name = 'atlns';
var age = 4;
var greeting = 'Hello everyone, my name is $name and I\'m ${age + 2}!';
print(greeting);
}
Flutter에서 자주 쓰임
void main() {
var numbers = [
1,
2,
3,
4,
];
List<int> numbers2 = [
1,
2,
3,
4,
];
numbers.add(1);
numbers.first;
}
VS Code나 DartPad 사용한다면 list 끝을 쉼표로 만들어주기! ⇒ 자동으로 여러 줄로 포매팅됨
Dart에서 List의 장점은 collection if
와 collection for
를 지원한다는 것
[collection if 사용 안하는 경우]
var giveMeFive = true;
var numbers = [
1,
2,
3,
4,
];
if (giveMeFive) {
numbers.add(5);
}
[collection if 사용한 경우]
var giveMeFive = true;
var numbers = [
1,
2,
3,
4,
if (giveMeFive) 5, // collection if
];
void main() {
var oldFriends = [
'cat',
'dog',
];
var newFriends = [
'hams',
'sanrio',
'mario',
for (var friend in oldFriends) "🥰 $friend"
];
print(newFriends);
}
JS나 TS의 object, Python의 dictionary와 유사
void main() {
var player = { // 자료형 Map<String, Object> => key는 String, value는 Object(any 타입)
'name': 'atlns',
'xp': 12.34,
'superpower': true,
};
}
List와 Map을 활용해서 아래와 같이 작성할 수도 있음
class
를 사용하는 게 더 좋음key와 value를 가지는 구조로 object 만들고 이 친구들이 특정 형태를 가질 때, class를 사용하자!
(API에서 얻은 데이터)
void main() {
List<Map<String, Object>> players = [
{
'name': 'atlns',
'xp': 12.34,
'superpower': true,
},
{
'name': 'hams',
'xp': 10.23,
'superpower': true,
},
{
'name': 'cat',
'xp': 35.20,
'superpower': false,
},
];
print(players);
}
모든 요소가 유니크해야 하고, sequence(순서)가 있음
Dart에서 List = Python의 List
Dart에서 Set = Python의 Tuple
void main() {
var numbers = {1, 2, 3, 4}; // Set<int>
numbers.add(1);
numbers.add(1);
numbers.add(1);
print(numbers); // {1, 2, 3, 4}
}