マップを使用して名前パラメーターを持つ関数を呼び出すことができるかどうかを知りたいです。
void main()
{
Map a = {'m':'done'}; // Map with EXACTLY the same keys as slave named param.
slave(a);
}
void slave({String m:'not done'}) //Here I should have some type control
{
print(m); //should print done
}
ここでのハックは、kwargs ではなく Map を使用することです。または、タイプに関心がある場合は、インターフェイス化されたクラス (Json-obj など) を使用しますが、マップを kwars として受け入れるだけのほうがエレガントではないでしょうか? さらに、このハックを使用すると、オプションの kwargs はおそらく苦痛になるでしょう...まだ存在しない場合、可能な実装は次のようになります。
slave(kwargs = a)
たとえば、名前付きパラメーターを受け入れるすべての関数は、(マップ) kwargs (または他の名前) 引数を黙って受け入れることができます。定義された dart がフードの下でこのロジックを処理する必要がある場合: マップのキーがオプションではないものである場合に加えて、{} ブラケットで定義され、互換性のあるタイプのオプションのいくつかが「続行」されます。