問題タブ [dart-mirrors]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
dynamic - Dartでランタイムタイプチェックを実行するにはどうすればよいですか?
ダート仕様は次のように述べています。
洗練された型情報は、実行時のオブジェクトの型を反映し、動的な型チェック構造(他の言語のinstanceOf、casts、typecaseなどの類似物)によって常に照会される場合があります。
素晴らしいように聞こえますが、同様のinstanceof
演算子はありません。では、Dartでランタイムタイプチェックをどのように実行するのでしょうか?それは可能ですか?
dart - Dart のクラスでメソッドを動的に呼び出したり、インスタンス変数を設定したりする方法はありますか?
Dart クラス コンストラクターを使用して、次のようなことができるようにしたいと考えています。
this
メソッドがないため、明らかにこれは機能しません[]=
。
それを機能させる方法はありますか、それとも単に物事を行うための「ダーツな方法」ではありませんか? そうでない場合、これに取り組む正しい方法を教えていただけますか?
dart - Dart でクラス名 'InvocationMirror' を解決できません
Dart の を使用しようとしてきましたnoSuchMethod()
が、このコードは
次のエラーが発生します。cannot resolve class name 'InvocationMirror' from 'MyClass'
InvocationMirror のようなクラスはないようです。それを持たない古いバージョンのダーツでしょうか?私が持っているのは、今日ダウンロードした SDK for Mac の安定版です。
dart - ミラー API を介して静的メソッドの具体的なオブジェクトを取得するには?
私はこのようなものを持っています:
リフレクションを介して、このクラスの ClassMirror を取得できます。この時点から、具体的な静的関数を呼び出すにはどうすればよいでしょうか。
私が使用しようとしたことに注意してください:
最初は機能するように見えますが、複雑な型を引数として渡すことはサポートされていません。この静的関数には、引数の 1 つとして複雑な型が必要です。
理想的には、静的メソッドを表す「関数」オブジェクトを取得して、直接呼び出すことができるようにしたいと考えています。
reflection - ミラーベースの反射と従来の反射の違いは何ですか?
Dart のような一部の言語はミラー ベースのリフレクションを使用します。簡単に言えば、C# や Java で見られるような実装と従来のリフレクションの違いは何ですか。
更新: Newspeak でミラーベースのリフレクションに関する Gilad Bracha による素晴らしい (そしてやや風変わりな) ビデオを見つけました。 http://www.hpi.uni-potsdam.de/hirschfeld/events/past/media/100105_Bracha_2010_LinguisticReflectionViaMirrors_HPI.mp4 (ミラー関連は 7:42 から開始)
mocking - dart - モック、名前で呼び出されるメソッド名、リファクタリングの失敗
説明されているように、dart unittest フレームワークと含まれている Mock クラスを使用しました
ただし、モック呼び出しには依存関係があります。
isLocked
メソッドへの呼び出しは名前で呼び出されます。誰かがisLocked
メソッドの名前を変更した場合、リファクタリング フレームワークは呼び出しの名前を変更しません。
リフレクション(鏡)が何かに役立つのではないかと思っていましたが、解決策が見つかりませんでした。
乾杯ピーター
dart - Dartでは、setterメソッドの生成された名前は何ですか?
セッターが定義されたクラスがある場合、そのクラスのインスタンスから関数として生成されたメソッドを参照するにはどうすればよいですか。スペックの種類は、それが変数+'= "(daftのようです)のIDであることを示唆していますが、これは解析されません。
したがって、たとえば:
dart - Dartのライブラリの下で静的ファイルを読んでいますか?
Dartでライブラリを作成していますが、ライブラリフォルダの下に静的ファイルがあります。それらのファイルを読み取れるようにしたいのですが、そのファイルへのパスを取得する方法がわかりません...他のいくつ__FILE__
か$0
の言語にはありません。
更新:私は十分に明確ではなかったようです。これが私を理解するのに役立ちます:
test.dart
foo.dart
間違ったフォルダの場所が表示されます。+へのパスが表示されますが、test.dart
+resources/
へのパスが必要です。foo.dart
resources/
class - オブジェクトがクラスのインスタンスかどうかを確認する方法
オブジェクトが Dart 言語のクラスであるかどうかを判断するにはどうすればよいですか?
私は次のようなことをしようとしています:
また、戻り値の型は何ですか? 文字列である必要がありますか?
ミラー ライブラリは浮き沈みがあり、現在急速に変化しているようです。
ruby - Rubyのinstance_variable_setメソッドに相当するものはDartにありますか?
そうでない場合、このようなものは地平線上にありますか?
これは、JavaScript、Ruby、Perlの機能の1つであり、これなしでは生きていけません。ハッシュメンバーで偽造できることは知っていますが、パーサーから(任意の)「ファーストクラス」メンバーを作成できるようにしたいと思います。