정리

다트 정리(기본)

디벨로프로 2020. 2. 17. 09:53
반응형
- var 타입 변환 불가능

var n = 1;
n = '문자';

- dynamic 타입 변환 가능
dynamic data = 1;
data = '문자';

fianl

final 에는 var을 사용할 수 없다.

다른 자료형 타입에는 사용할 수 있다.

final은 자료형 타입을 선언하지 않아도 된다.

 

final vs const 

공통점

-변하지 않는다.

 

 

fianl f =DateTime.now(); //(O)

const c = DataTime.now(); //(X)

차이점

fianl (결정적인)

- fianl은 compile, runtime시점 모두 값을 정의할 수 있다.

- 값이 없는 상태로도 선언이 가능하다.

- 한번 정의되면 변경 불가능

 

const (끊임없는)

- compile 시점에만 값을 정의할 수 있다.

- 처음부터 값을 선언해야 한다.

 


제어문

void main(){
  int year = 2000;
  
  if(year == 2000){
    print('$year입니다');
  }
}

함수안에 $기호를 사용해서 변수를 자유롭게 사용할 수 있다.

 

반복문

for(int i=1; i<10; i++){
  
}

for(int i in list){
  print(i);
}

 


함수

// 변수명앞에 _(언더바)를 붙이면 private 선언이다.
int _add(int a, int b) {
  return a + b;
}

var add2 = (int a, int b) => a + b;

var add3 = (a, b) => {
  print(a), print(b),
  a+b
  };

void main() {
  
  add3(1,2);
  >>1
  >>2
  
  print(add3(1,2));
  >>1
  >>2
  >>{null,3}
}

 

forEach 사용방법

void main() {
  var list =[1,2,3,4];
  list.forEach(print);

}

상속

-두개 이상의 클래스를 상속할수 있다. 

extands A with B

일반 클래스를 implements 가능하다.

class Animal{
  void sound(){
    print('어흥');
  }
}

// class Dog extends Animal{}

class Dog implements Animal{
  void sound(){
    print('멍멍');
  }
  
}

void main(){
  Dog d = Dog();
  d.sound;
}

 


getter, setter 생성 방법

 

class Animal{
  String _name;
  int _speed;
  
  //자바
  //   String getName(){
  //     return _name;
  //   }
  
  //플러터
  
  //생성자
  Animal(this._name, this._speed);
  
  //getter
  String get name => _name;
  //setter
  set name(String name){
    _name = name;
  }
  

  
}

// class Dog extends Animal{}


void main(){
  Animal a = new Animal('개',1);
  print('${a._name} ${a._speed}');
 
}

'정리' 카테고리의 다른 글

(플러터) 실로폰  (0) 2020.02.20
(flutter) MagicBall 만들기  (0) 2020.02.19
JPA 시작하기  (0) 2020.02.16
[SPRING] AWS에 MAVEN사용해서 배포 - (4) Git clone / Maven Compile, package  (0) 2020.02.13
[Spring] 정적 리소스 매핑  (1) 2020.02.12