Loading...

Dart / / 2022. 5. 26. 12:33

Dart 문법

반응형

https://dartpad.dev/? 

 

DartPad

 

dartpad.dev

 

다트도 마찬가지로 main이 먼저 실행된다.

int n1 = 1;
double d1 = 10.1;
bool b1 = true;
String s1 = "홍길동";

void main() {
  print("정수 : ${n1}");
  print("실수 : ${d1}");
  print("불리언 : ${b1}");
  print("문자 : ${s1}");
}

 

// var 타입추론 : 값이 들어올 때 결정되는 타입
var n1 = 1;
var d1 = 10.1;
var b1 = true;
var s1 = "홍길동";

void main() {
  print("정수 : ${n1}");
  print("실수 : ${d1}");
  print("불리언 : ${b1}");
  print("문자 : ${s1}");
  
  print("타입 : ${n1.runtimeType}");
  
  // 타입 추론의 단점 : var은 타입이 결정되면 타입 변경 불가능 (묵시적 형변환 불가능)
  n1 = 2;
  print("정수 : ${n1}");
  n1 = 3.0;
}

 

dynamic은 오브젝트 타입, 타입 변경 가능

var은 오브젝트 타입이지만 타입 변경 불가능

 

보통 통신은 dynamic으로 받고 클래스로 변경

// var 타입추론 : 값이 들어올 때 결정되는 타입
var n1 = 1;
var d1 = 10.1;
var b1 = true;
var s1 = "홍길동";
dynamic dy1 = 50; // Object 타입

void main() {
  print("정수 : ${n1}");
  print("실수 : ${d1}");
  print("불리언 : ${b1}");
  print("문자 : ${s1}");
  
  print("타입 : ${n1.runtimeType}");
  
  // 타입 추론의 단점 : var은 타입이 결정되면 타입 변경 불가능 (묵시적 형변환 불가능)
  n1 = 2;
  print("정수 : ${n1}");
  // n1 = 3.0;
  print(dy1);
  print(dy1.runtimeType);
  dy1 = "홍길동";
  print(dy1);
  print(dy1.runtimeType);
}

 

변수를 선언하고 초기화를 안해주면 출력 자체를 안해준다.

null 자체도 데이터이기 때문에 null을 넣어보자.

 

오류가 난다.

dart의 모든 타입은 null을 받지 못한다!!

 

그렇기 때문에 타입에 ?를 붙인다.

자바의 Optional과 같다.

 

Optional<String> hello = null

String? hello = null

동일하다

 

void main() {
  // null 대체 연산자
  String? hello = null;
  print(hello);
}

 

값이 있으면 그대로 뿌리고 없으면 ?? 로 지정해줄수있다. isPresent와 동일하다.

void main() {
  // null 대체 연산자
  String? hello = null;
  print(hello ?? "홍길동");
}

 

 

[출처]

 

https://cafe.naver.com/metacoding

 

메타코딩 : 네이버 카페

코린이들의 궁금증

cafe.naver.com

메타 코딩 유튜브

https://www.youtube.com/c/%EB%A9%94%ED%83%80%EC%BD%94%EB%94%A9

 

메타코딩

문의사항 : getinthere@naver.com 인스타그램 : https://www.instagram.com/meta4pm 깃헙 : https://github.com/codingspecialist 유료강좌 : https://www.easyupclass.com

www.youtube.com

 
반응형