컬렉션다트는 리스트(List), 셋(Set), 맵(Map) 컬렉션을 기본으로 지원한다. 리스트(List)다트에서 여러 개의 값을 가지는 배열인 리스트(list)를 제공한다. 리스트 리터널은 대괄호([ ])로 둘러싸인 쉼표로 구분된 식 또는 값 목록으로 표시된다. var list = [1, 2, 3]; 위의 코드에서 list 변수는 List 타입으로 추론된다. 만일 선언 이후 list에 int가 아닌 값을 추가하면 에러가 발생한다. 리스트의 마지막 아이템에 콤마를 추가할 수 있다. 마지막 콤마는 아무런 의미가 없다. 이 콤마는 다음 아이템을 추가할 때 콤마를 빼먹지 않을 수 있기 때문에 에러를 방지한다.var list2 = [ 'Car', 'Boat', 'Plane',]; 리스트의 인덱..
레코드레코드는 여러 객체를 묶어서 단일 객체로 만들어 준다. 레코드는 크기가 고정되고, 서로 다른 타입을 가질 수 있고, 타입이 된다. 따라서 레코드는 익명, 불변, 집합 타입이라는 특성을 가지게 된다. 레코드는 값이 된다. 레코드를 변수에 저장할 수 있고, 중첩할 수 있다. 그리고 매개변수 타입과 리턴 타입이 될 수 있다. 또한 리스트, 맵, 집하보가 같은 데이터 구조에 저장할 수도 있다. 레코드 구문레코드 구문은 괄호 안에 쉼표로 구분된 이름 필드 또는 위치 필드로 이루어진다. 이름 필드는 이름과 값으로 이루어지고 위치 필드는 값으로만 이루어진다.var record = ('first', a: 2, b:true, 'last'); 레코드 타입 주석레코드 타입 주석은 괄호 안에 쉼표로 구분된 타입으로..
함수다트는 진정한 객체지향 언어이기 때문에 함수도 객체이고, 함수는 Function이라는 타입을 갖는다. 함수는 객체이므로 변수에 할당하거나 다른 함수에 인수로 전달할 수도 있다.bool isNoble(int atomicNumber) { return _nobleGases[atomicNumber] != null;} 타입을 생략해도 타입 추론으로 함수는 여전히 작동하지만 추천하지 않는다.isNoble(atomicNumber) { return _nobleGases[atomicNumber] != null;} 화살표 구문함수 본문에 표현식이 하나라면 화살표 구문(arrow syntax)를 사용할 수 있다.bool isNoble(int atomicNumber) => _nobleGases[atomicNumbe..
내장 타입다트 언어는 다음과 같은 내장 타입을 지원한다.숫자 - int, double문자열 - String불리언 - bool레코드 - ()리스트 - List집합 - Set맵 - Map룬 - Runes심볼 - Symbol널 - null 내장 타입은 리터럴을 사용하여 객체를 생성하는 기능이 포함된다. 예를 들어, 'name'은 문자열 리터럴이고, true는 불리언 리터럴이다. 다트는 모든 값은 객체(클래스의 인스턴스)가 된다. 따라서 생성자를 사용하여 값을 만들 수 있다. 예를 들어, Map() 생성자를 사용하여 맵을 만들 수 있다. 다른 일부 타입도 다트 언어에서 특별한 역할을 한다.Object: null을 제외한 모든 다트 클래스의 슈퍼클래스Enum : 모든 열거형의 슈퍼클래스Future와 Stream ..
다음 표는 다트 언어가 자체적으로 사용하는 키워드를 나열한 것이다. 이 키워드는 식별자로 사용될 수도 있지만, 다른 개발자에게 혼란을 줄 수 있으므로 피하는 것이 좋다. 이 키워드는 문맥에 따라 식별자로 사용될 수 있다.이 키워드는 타입의 이름(class, mixin, enum, extension type, 또는 type alias의 이름) 또는 확장(extension)의 이름 또는 import 접두사로 사용할 수 없다. 그 외의 모든 상황에서 식별자로 사용할 수 있다.이 키워드는 제한 없이 식별자로 사용할 수 있다.
라이브러리와 임포트임포트와 라이브러리는 모듈식 공유 코드 기반을 만들 수 있다.라이브러리는 API를 제공할 뿐만 아니라 개인 정보 보호 단위이다.밑줄(_)로 시작하는 식별자는 라이브러리 내부에서만 사용할 수 있다.모든 다트 파일은 라이브러리가 된다. 라이브러리 사용import를 사용해서 라이브러리를 불러와 사용하라 수 있다.import 'dart:html'; 내장 라이브러리는 'dart:스키마'가 되고, 외부 라이브러리는 'package:스키마'가 된다.import 'pakcage:test/test.dart'; 라이브러리 접두사 지정동일한 이름으로 식별자가 충돌하는 경우, 접두사를 지정해서 해결할 수 있다.접두사로 지정된 라이브러리는 접두사로 접근할 수 있다.import 'package:lib1/..
메타 데이터코드에 추가 정보를 제공하려면 메타데이터를 사용한다. 메타데이터 주석은 @ 문자로 시작하고, 컴파일 타임 상수(예: @deprecated)에 대한 참조나 상수 생성자 호출(예: @Deprecated('Use turnOn instead') )이 뒤따른다. 모든 Dart 코드에서 사용할 수 있는 네 가지 주석이 있다:@Deprecated@deprecated@override@pragma@override 다음은 @Deprecated 주석을 사용하는 예제다:class Television { /// Use [turnOn] to turn the power on instead. @Deprecated('Use turnOn instead') void activate() { turnOn(); } /..
한 줄 주석한 줄 주석은 // 로 시작한다. 다트 컴파일러는 // 의 시작부터 줄 끝 사이의 모든 내용을 무시한다.// 한 줄 주석 여러 줄 주석여러 줄 주석은 /* 로 시작해서 */ 로 끝난다. /* 과 */ 사이의 모든 것은 무시된다. 하지만 문서 주석인 경우에는 무시되지 않는다. 여러 줄 주석은 중첩될 수도 있다./* * 여러 줄 주석 */ 문서 주석문서 주석은 여러 줄 또는 한 줄 주석이 있다.여러 줄 주석 : /** 과 **/한 줄 주석 : ///문서 주석 내에서 분석기는 대괄호로 묶이지 않는 모든 텍스트를 무시한다. 대괄호를 사용하여 클래스, 메서드, 속성, 최상위 변수, 함수 및 매개변수를 참조할 수 있다. 대괄호 안에 이름은 문서화 프로그램 요소의 어휘 범위에서 확인된다. 다음은 다..