言語編 |
メタデータ(MetaData)はプログラム・コードに付加的情報を与えるものである。これは自分のコードの一部に対しその目的や状態など示すタグだと考えればよい。メタデータは一連のアノテーションたちで構成され、その各々は文字@で始まり以下コンパイル時定数(例えばdeprecated)への参照、または定数コンストラクタ呼び出しが続く。
注意:メタデータはセミコロン(;)では終了しない。
現在@deprecatedと@overrideの2つが総てのDartコードに対して使える。
@deprecatedアノテーションの例を挙げる:
|
これはactivateという関数はもう使われなくなった(deprecated)ので代わりにturnOnという関数を使っていることを示している:
副型のインスタンス・メソッド、ゲッタ、セッタなどを書き換えることができる。@overrideアノテーションはあるメンバを意図的に書き換えていることを示すために使うことができる:
|
自分自身のアノテーションも定義できる。ここでは2つの引数を持った@todoアノテーションを示す:
|
この@todoアノテーションを使った例を示す:
|
これは別のプログラマのSethに対しこの箇所を作ってくれと指示する内容になっている。
メタデータはライブラリ、クラス、typedef、型パラメタ、コンストラクタ、ファクトリ、関数、フィールド、パラメタ、あるいは変数宣言の前に、及びインポートまたはエクスポート指令の後に置かれ得る。リフレクション(reflection)を使って実行時にメタデータを検索できる(参考となる記事)。