int 정수
double 소수점까지
num 정소 + 더블 다
var 는 처음 정한 값의 데이터 타입으로 적용됨 근데 후에 알기 어려우니 지향
const
변경불가 compile 할때부터 적용 찐 불변!
final
변경불가 run 될때 적용
List<String>
배열 인데 final이면 안에 값은 변경 가능 const는 불가능
데이타 타입을 설정하면 해당 오브젝트 기능을 사용가능!
num number = 10;
number.round();
number += 2;
number *= 3;
String str2 = 'haha';
String str = 'lululu ${str2.toUpperCase()} lulu';
String longStr = """ gkgkgk
띄어쓰기 가능 따옴표세개
gkgkgk
""";
bool trueFalse = true;
assert(trueFalse); // assert 트루인지 확인해줌
final List<String> strList = ['aa', 'gg'];
strList[0]='bb'; // 가능
strList=['cc', 'dd']; // 불가능
const List<String> strList2 = ['aa', 'gg'];
strList2[0]='bb'; // 불가능
List<num> numList = [1,2,3,4];
List<num> numList2 = [0, ...numList, 5];
numList2.add(0); // 중복되도 들어감
Set<num> numSet = {1, 2, 3, 4, 5};
numSet.add(2); // 중복되는 값 집어넣어도 자동 필터링
Map<num, String> mapD = {100: 'zero', 1: 'one', 2: 'two'};
mapD[100]; // key값을 넣어줘야 찾음
mapD[5] = 'five'; // 마지막에 추가됨
// 옵션파라미터 []
print(newNum(3));
int newNum([int? number]) { // 대괄호는 파라미터를 안넣어도 됨 null safety 이용
return 123 + number??0;
}
int newNum([int number = 0]) { // 없으면 0으로 처리
return 123 + number;
}
// 네임드파라미터 {}
print(newNum2(3, number: 10));
int newNum2(int num1, {int number = 0}) { // 중괄호는 key값이 설정됨
return 123 + number;
}
Class 는 설계도 (차공장)
Object Instance 개념 비슷 각각의 차
void main(){
Car myCar = Car('pink'); // Object (Instance)
print(myCar.color);
}
class Car{
String? color;
int? wheels;
// constructor 주문서 양식
Car(String clr){
color = clr;
}
int speed(int accel){
return accel *2;
}
}
Car myCar = Car('pink', 8);
Car(this.color, this.wheels);
Car basicCar = Car.basic();
Car fullOptionCar = Car.fullOption(seats: 6);
Car.basic(){
color = 'red';
wheels = 4;
}
Car.fullOption({this.seats = 4}){
color = 'rainbow';
wheels = 16;
}
Car basicCar = Car.basic();
Car basicCar2 = Car.basic2(''red);
Car fullOptionCar = Car.fullOption();
Car.basic() : this('red', 4);
Car.basic2(String clr) : this(clr, 4);
Car.basic3(String clr, {int wheels = 4}) : this(clr, wheels);
Car.fullOption() : this.basic3('rainbow', wheels: 16);
void main(){
Car myCar = Car('pink'); // Object (Instance)
print(myCar.color);
}
class Car{
final String? color;
// final 로 지정하면 이니셜라이즈 부분에 컬러값을 저장해주고 car 바디가 실행됨
Car(String clr, this.wheels): color = clr {
color = clr;
};
}
var ids = [1, 4, 4, 4, 5, 6, 6];
var distinctIds = ids.toSet().toList();
// Result: [1, 4, 5, 6]
OR
var distinctIds = [...{...ids}];
objective oriented : 객체지향