0

私が間違っていなければ、このコードは次のように表示されます。

 "dart.core.dynamic"

しかし、以下が印刷されます:

 "dynamic"

私のコード:

    import 'dart:mirrors';

    main() {
      var mirror = reflectType(dynamic);
      var symbol = mirror.qualifiedName;
      print(symbol); // -> "dynamic"
    }
4

2 に答える 2

1

「動的」は完璧に良い結果だと思います。

通常の修飾名は、型名の前に宣言ライブラリの名前を付けます。「dart:core」ライブラリの名前である「dart.core」のプレフィックスを期待していますが、そのライブラリでは「dynamic」が宣言されていません ( https://api.dartlang.org/docs/channels/ stable/latest/dart_core.html ) であるため、使用する接頭辞としては不適切です。

「動的」型は、どのライブラリでも宣言されていない合成型です。「動的」のように動作する型を宣言できる「クラス」または「typedef」宣言はありません。仕様によってのみ指定され、コンパイラとランタイム システムで内部的に実装されます。

この場合、プレフィックスのない修飾名を持つことは完全に理にかなっています。「void」の場合と同じです。

于 2013-11-28T13:26:52.223 に答える