dart 훑어보기 (1)

플러터를 써보려다가 다트를 공부하기 시작..

Dart 가 어떤 언어인지에대한 간략한 소개내용을 공식문서에서 읽어봤습니다.

얼핏 보니 자바와 매우 유사합니다.

객체지향 언어이고 변수, loop, 메서드, 클래스 등등 매우 많은 부분에서 유사한 점을 보이고 있음.

자바와 다트의 차이점을 나열해보자면..다트는 아래와 같은 특징 또는 기능이 있습니다.

  • primitive(원시) 타입이 없음. 자바의 경우 int, long, double 과 같은 원시타입과 이 원시타입들의 wrapper 클래스인 Integer, Long, Double 등이 존재하지만, 다트는 모든 타입이 Object 임.
  • 변수 사용법 (출력시 문자열을 "이걸 출력할건데 변수명을 붙였어요 $변수명" 이렇게 써주면 $변수명 이 변수가 들고있는 값으로 치환되어 출력됨. 자바의 경우 String.format 을 이용해야 했음), 변수명 자리에 {expression} 을 사용하여 계산식을 사용할 수도 있음
  • null safety (Dart 2.12 버전부터 생김. 자바의 NPE 예방을 개발자가 아닌 컴파일러가 해주도록 한 기능으로 기본적으로 모든 객체는 non-nullable 로 취급함. 다만 ? 기호를 이용해서 nullable 객체라고 명시적으로 선언하면 null 값도 사용할 수 있음, 공식문서 참고)
  • private, protected, public, default 같은 접근제한자(access modifier)가 없음. 다만 이름이 밑줄로 시작하면 해당 라이브러리(클래스?)에 private한 것이 됨.
  • 다트의 int 타입은 64 비트 signed 값이고 플랫폼에 따라 범위가 약간 다름 (공식문서)

뭐 이외에도 lexical scope, lexical closure 등 여러 부분에서 다른 부분들이 보였는데 여기 다 나열할 수는 없고,

전체적인 느낌은 자바와 자바스크립트를 합쳐놓은 언어라는 느낌을 받았습니다. (해본게 Java랑 Javascript 뿐이라.. ㅎ)

 

참고로 다트패드에서 이런저런 다트코드들을 시험해볼 수 있습니다.