다트에서 식별자는 세 가지 종류가 있다.
UpperCamelCase
lowerCamelCase
lowercase_with_underscores
클래스, 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 { ... }
extension MyFancyList<T> on List<T> { ... }
extension SmartIterable<T> on Iterable<T> { ... }
어떤 파일 시스템들은 case-sesitive 하지 않기 때문에(대소문자를 구분하지 않기 때문에) 같은 이름을 대소문자로 구별하려할 때 충돌이 일어날 수 있다.