Dart 언어 기본

coda·2022년 5월 18일
0

dart언어 공부 - 코딩파파

int 정수
double 소수점까지
num 정소 + 더블 다
var 는 처음 정한 값의 데이터 타입으로 적용됨 근데 후에 알기 어려우니 지향

const 변경불가 compile 할때부터 적용 찐 불변!
final 변경불가 run 될때 적용

List<String> 배열 인데 final이면 안에 값은 변경 가능 const는 불가능


Data Type

데이타 타입을 설정하면 해당 오브젝트 기능을 사용가능!

num
num number = 10;
number.round();

number += 2;
number *= 3;
string
String str2 = 'haha';
String str = 'lululu ${str2.toUpperCase()} lulu';
String longStr = """ gkgkgk
띄어쓰기 가능 따옴표세개
gkgkgk
""";
bool
bool trueFalse = true;
assert(trueFalse); // assert 트루인지 확인해줌
List
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 & Map
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';  // 마지막에 추가됨

Function

Param (옵션과 네임드는 같이 사용 불가)
// 옵션파라미터 []
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

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;
  }
}
Basic constructor Short form
 Car myCar = Car('pink', 8);

 Car(this.color, this.wheels);
Named constructor
  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;
  }
Forward constructor
  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);

initializer

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;
 };
}

dart언어 공부 - stackoverflow

리스트에서 중복 제거

  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 : 객체지향

profile
시간은 효율적으로 쓰고 누워있자

0개의 댓글