String, bool, int, double
void main(){
String name = "dart";
bool alive = true;
int age = 12;
double money = 69.99;
//num=int,double 둘 다 가능
num x = 12;
x = 1.1;
}
리스트
void main(){
var numbers = [1, 2, 3, 4];
List<int> nums = [1, 2, 3, 4];//위와 동일
var numbers = [
1,
2,
3,
4,
]; // 마지막에 , 붙이면 저절로 여러 줄로 정리
}
first는 리스트의 첫번째 요소 가져옴
last는 리스트의 마지막 요소 가져옴
collection if, collection for 지원
collection if - UI 인터페이스를 만들 때, 이 기능이 굉장히 유용함
void main(){
var giveMeFive = true;
var numbers = [
1,
2,
3,
4,
if(giveMeFive) 5, //giveMeFive가 true면 5추가
/*
if(giveMeFive){
numbers.add(5)
}
*/ //위와 동일
];
}
String interpolation : text에 변수를 추가하는 방법
void main(){
var name = 'dart';
var greeting = 'Hello everyone, my name is $name, nice to meet you';
//greeting == Hello everyone, my name is dart, nice to meet you
}
void main(){
var name = 'dart';
var age = 10;
var greeting = 'Hello everyone, my name is $name and I\'m ${age+2}';
//greeting == Hello everyone, my name is dart and I'm 12
}
collection for - 시간 절약
void main(){
var oldFriends = ['dart', 'flutter'];
var newFriends = [
'java',
'c',
'c++',
for(var friend in oldFriends) "* $friend",
];
//newFriends == [java, c, c++, * dart, * flutter]
}
map : 자바스크립트의 object, python의 dictionary
void main(){
var player = {
'name':'dart',
'xp':19.99,
'superpower':false,
}; //Map<String(key), Object(value)>
//object == TypeScript의 any
}
명시할 경우
void main(){
Map<int, bool> player = {
1:true,
2:false,
3:true,
};
Map<List<int>, bool> palyer2 = {
[1, 2, 3, 5]:true,
}
List<Map<String, Object>> palyers = [
{
'name':'dart',
'xp':19.99,
},
{
'name':'flutter',
'xp':199993.99,
},
]
}
모든게 class이므로 map도 method와 property를 가지고 있음
key와 value를 가진 Object를 만들때는 class 추천
set
void main(){
var numbers = {1, 2, 3, 4}; //Set<int>
}
set vs list == set에 속한 모든 아이템들은 유니크함
void main(){
var numbers = {1, 2, 3, 4};
numbers.add(1);
numbers.add(1);
numbers.add(1);
print(numbers); //=={1, 2, 3, 4}
//list로 사용시 [1,2,3,4,1,1,1]출력
}