DART

[DART] Dart의 중요 개념 - 항상 숙지할 것! - Important Concepts of Dart

예나부기 2022. 4. 7.

참고 : 아래의 설명은 타 개발 언어(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을 일으킬 수 있다.

댓글