Operator
Records
Lists 가장 일반적인 Collection 배열 또는 순서가 지정된 개체 그룹 마지막 아이템에 , 붙여도 0 기반 인덱싱 사용, 0은 첫번째 인덱스 list.length - 1은 마지막 아이템 Sets 고유한 아이템들의 무질서한 컬렉션 빈 set을 생성할 때는 타
Asynchrony support Handlig Futures async / await Future API try,catch,finally를 이용해 에러를 처리할 수 있다 async 함수에서 await를 여러번 부를 수 있음 async 함수 선언 handlin
라이브러리 part of 명령어에 문자열을 사용한다 library 파일을 직접 가리키는 URI string을 사용하는 것이 좋다 이름만 사용한다면 해당 부분이 실제 어떤 라이브러리에 속하는지 모호할 수 있음 다른 패키지의 src 디렉토리에 있는 라이브러리를 import하지 않는다 lib 아래 src 디렉토리는 패키지가 자체적으로 구현한 private 라이...
변수를 명시적으로 null로 초기화하지 않는다 변수가 nun-nullable 타입을 초기화하지 전에 사용한다면, Dart는 컴파일 에러를 발생시킴 변수가 nullable이라면, 암묵적으로 null로 초기화됨 > Dart에는 "초기화되지 않은 메모리"라는 개념이 없고 명시적으로 null로 초기화하지 않아도 괜찮음 매개변수에 기본 값으로 null을 명시하여 ...
인접 문자열을 사용하여 문자열 리터럴을 연결한다 두 개의 문자열 리터럴 (값이 아니라 실제 따옴표로 묶은 리터럴 형식)을 연결하는 경우에 +를 사용할 필요가 없고 단순히 나란이 배치시키면 됨. 긴 단일 문자열을 만들 때 좋다 문자열 값들을 합성할 때 보간 사용을 지향한다 +를 이용해 긴 체인의 문자열을 만들어도 되지만 Dart에서는 보간을 사용하는게 깔끔...
가능하다면 컬렉션 리터럴을 사용한다 Dart는 세 개의 핵심 컬렉션 타입을 가지고 있음(List, Map, Set). Dart는 컬랙션 생성을 위한 더 좋은 내장 문법을 가지고 있음 -> 해당 예제는 named 생성자에 적용하지 않음, List.from(), Map.fromIterable() 등 비슷한 생성자들은 저마다 사용법이 존재함 (List 클래스 ...
함수의 이름과 함수를 바인드 하려면 함수 선언식을 사용 함수 안에 함수가 선언되는 것을 흔한 일이며 흔히 이런 함수들은 콜백으로 사용되고 이름이 없음 -> 함수 표현식을 이런 경우에 적합 함수에 이름을 부여하고 싶다면 변수에 람다를 바인딩 하지 말고 함수 선언문을 사용 람다 대신 Tear-off를 사용 함수, 메서드 또는 named 생성자를 참조할 때 괄...
변수 - 지역 변수에 var과 final을 사용할 때 일관된 규칙을 따른다 - 계산이 가능한 값들을 저장하는 것을 피한다 멤버 - 필드에 불필요한 getter와 setter를 생성하지 않는다 - 읽기 전용인 프로퍼티를 생성할 때, final 키워드 사용을 지향한다 변수를 읽을 수만 있고 외부 코드로 수정할 수 없는 변수를 생성하는 쉬운 방법임 > 내부에...
Future을 async/await와 같이 사용하는 것을 지향한다 비동기 코드는 future와 같은 추상화를 사용하더라도 읽고 디버깅하기 쉽지않다 -> async/await를 사용하면 문법의 가독성 향상과 비동기 코드에서 Dart의 모든 흐릅 제어문을 사용할 수 있다 필요가 없다면 async를 사용하지 않는다 메소드의 동작을 변경하지 않고 async를 생...
Names 일관되게 사용하기 이름을 일관되게 작성한다, 내가 사용한 이름이 다른 외부에서도 사용했던 이름이라면 사용자 들은 해당 기능을 사용하기 전에 학습해야할 양을 줄일 수 있다 약어 사용을 피한다 약어가 일반 단어보다 일반적인 경우가 아니라면 사용하지 않는 것이 좋고 사용하는 경우에는 대문자로 올바르게 표시한다 이것이 무엇인지 가장 잘 보여줄 수 있는...