참고 : 아래의 설명은 타 개발 언어(C, Java 등)를 이미 숙지한 상태라고 가정 후 설명하는 것이다.
필자는 Java에 익숙하므로, 대부분의 설명이 Java와 비교하여 이루어 질 것이다.
모든 설명은 https://dart.dev/guides/language/language-tour 를 참고하며 개인적인 해석을 덧붙인 것이다.
틀린 부분이나 부족한 부분의 보충이 필요할 시 언제든 댓글을 달아주시길!!
Dart 언어를 배우면서, 아래의 사실/개념들을 항상 숙지할 것을 추천한다.
1)변수에 담을 수 있는 모든 것을 객체(Object)취급한다.
숫자들, 함수들, 그리고 null 도 객체이다. null을 제외하고, 모든 객체는 Object 클래스를 상속한다.
2)Dart는 데이터 타입이 자유롭지 않지만, 타입 선언은 비교적 자유로운데, Dart가 타입을 추론할 수 있기 때문이다.
3)null safety한 상황이라면, 변수들은 따로 선언하지 않는 한 null을 담을 수 없다.
만약 해당 변수에 null이 담길 수 있음을 표현하려면, 데이터 타입의 끝에 물음표(?)를 붙인다.
예를 들어, int? 라고 선언한 변수는 정수가 들어갈 수도 있고, null이 들어갈 수도 있다.
반대로 null이 절대 들어갈 수 없는 상황이라면 'null이 아니다'를 표현하기 위해 느낌표(!)를 추가할 수 있다.
(int x = nullableButNotNullInt!)
4)아무 타입이나 가능함을 명시하려면, Object? , Object, 또는 dynamic 이라고 선언한다.
5)Dart는 List<int> 또는 List<Object>와 같은 제네릭 타입을 지원한다.
6)식별자 앞에 underscore(_)를 붙이면, 이 라이브러리에 private 하다는 것을 의미한다.
Java와 다르게 따로 public, protected, private 와 같은 접근제어자를 사용하지 않는다.
7)Dart에서는 코드에 문제가 있을 때 warning / errors 두 가지로 알려준다.
warnings - 코드가 작동하지 않을 수 있음을 알려주지만, 프로그램이 실행되는걸 막지는 못한다.
errors - 컴파일단계에서 일어나는 에러일 경우 프로그램이 전혀 실행되지 않으며,
실행 단계에서 일어나는 에러일 경우 코드가 실행되는 동안 exception을 일으킬 수 있다.
'DART' 카테고리의 다른 글
[DART] Dart의 기본 데이터 타입(1) (int, double, String) Built-in Types in Dart (0) | 2022.04.13 |
---|---|
[DART] 상수와 final / const 키워드에 대하여 - Final and const (0) | 2022.04.11 |
[DART] Dart의 변수와 초기화 - Variables in Dart (0) | 2022.04.08 |
[DART] Dart 프로그래밍의 기본 - A Basic Dart Program (2) | 2022.04.07 |
[DART] Dart를 공부하기에 앞서 - What is Dart Programming Language? (1) | 2022.04.07 |
댓글