Dart-programming-symbol
Dartプログラミング-シンボル
Dartのシンボルは、ライブラリのメタデータを反映するために使用される不透明で動的な文字列名です。 簡単に言えば、シンボルは、人間が読める文字列とコンピューターで使用するために最適化された文字列との関係を保存する方法です。
リフレクションは、クラス内のメソッドの数、クラスに含まれるコンストラクターの数、関数内のパラメーターの数など、実行時に型のメタデータを取得するメカニズムです。 実行時にロードされるタイプのメソッドを呼び出すこともできます。
Dartリフレクションでは、特定のクラスが dart:mirrors パッケージで利用可能です。 このライブラリは、Webアプリケーションとコマンドラインアプリケーションの両方で機能します。
構文
例
次の例を考えてください。 このコードは、ライブラリ foo_lib でクラス Foo を宣言します。 このクラスは、 m1、m2 、および m3 メソッドを定義します。
Foo.dart
次のコードは、 Foo.dart ライブラリをロードし、Symbolタイプを使用してFooクラスを検索します。 上記のライブラリのメタデータを反映しているため、コードは dart:mirrors ライブラリをインポートします。
FooSymbol.dart
libMirror.declarations.forEach((s、d)⇒ print(s));という行に注意してください。実行時にライブラリ内のすべての宣言を反復処理し、宣言を Symbol のタイプとして出力します。
このコードは、次の*出力*を生成する必要があります-
例:クラスのインスタンスメソッドの数を表示する
クラス内のインスタンスメソッドの数を表示することを考えてみましょう。 定義済みのクラス ClassMirror は、同じことを達成するのに役立ちます。
このコードは、次の*出力*を生成する必要があります-
シンボルを文字列に変換
次の output が生成されるはずです-