식별자(Identifier)

다트에서 식별자는 세 가지 종류가 있다.

Do 타입을 정의할 땐 UpperCamelCase를 사용하라

클래스, enum, typedef, 타입 파라미터에 해당

class SliderMenu { ... }

class HttpRequest { ... }

typedef Predicate<T> = bool Function(T value);

이 규칙은 메타데이터 어노테이션으로 사용할 의도로 클래스를 작성할 때도 적용된다.

class Foo {
  const Foo([Object? arg]);
}

@Foo(anArg)
class A { ... }

@Foo()
class B { ... }

만약 어노테이션 클래스의 생성자가 매개변수를 가지지 않는다면, 이것을 할당받은 lowerCamelCase 변수를 어노테이션에 사용할 수도 있다.

const foo = Foo();

@foo
class C { ... }

DO extension을 정의할 땐 UpperCamelCse를 사용하라

extension MyFancyList<T> on List<T> { ... }

extension SmartIterable<T> on Iterable<T> { ... }

Do 패키지, 디렉토리, 소스파일은 lowercase_with_underscore를 사용하라

어떤 파일 시스템들은 case-sesitive 하지 않기 때문에(대소문자를 구분하지 않기 때문에) 같은 이름을 대소문자로 구별하려할 때 충돌이 일어날 수 있다.