[Dart] Dart-02-17: Metadata
Dart-02: Language Tour | ||
---|---|---|
Dart-02-01 | Important concepts | |
Dart-02-02 | Keywords | |
Dart-02-03 | Variables | |
Dart-02-04 | Built-in types | |
Dart-02-05 | Functions | |
Dart-02-06 | Operators | |
Dart-02-07 | Control flow statements | |
Dart-02-08 | Exceptions | |
Dart-02-09 | Classes | |
Dart-02-10 | Generics | |
Dart-02-11 | Libraries and visibility | |
Dart-02-12 | Asynchrony support | |
Dart-02-13 | Generators | |
Dart-02-14 | Callable classes | |
Dart-02-15 | Isolates | |
Dart-02-16 | Typedefs | |
Dart-02-17 | Metadata | |
Dart-02-18 | Comments |
Metadata
metadata를 사용하여 code에 대한 추가 정보를 제공한다. metadata annotation은 문자 @
로 시작하고, 그 뒤에 compile-time constant(such as deprecated
)에 대한 참조 또는 constant constructor에 대한 호출이 온다.
모든 Dart code에는 세 가지의 주석을 사용할 수 있다: @Deprecated
, @deprecated
, @override
. 다음은 @Deprecated
annotation을 사용하는 예이다:
class Television {
/// Use [turnOn] to turn the power on instead.
@Deprecated('Use turnOn instead')
void activate() {
turnOn();
}
/// Turns the TV's power on.
void turnOn() {...}
// ...
}
고유한 metadata annotation을 정의할 수 있다. 다음은 두 개의 argument를 사용하는 @Todo
annotation을 정의하는 예이다:
library todo;
class Todo {
final String who;
final String what;
const Todo(this.who, this.what);
}
다음은 @Todo
annotation을 사용하는 예이다:
import 'todo.dart';
@Todo('seth', 'make this do something')
void doSomething() {
print('do something');
}
metadata는 library, class, typedef, type parameter, constructor, factory, function, field, parameter, 변수 선언, import 또는 export 지시문 앞에 나타날 수 있다. reflection을 사용하여 runtime에 metadata를 검색할 수 있다.
댓글남기기