から来てpython
、私はそれを簡単に達成できることを知っています:
def someFunc(*args):
for i in args:
print i
そうすれば、100個の引数を簡単に与えることができます。
Dart でそのようなことを行うにはどうすればよいですか?
どうも。
から来てpython
、私はそれを簡単に達成できることを知っています:
def someFunc(*args):
for i in args:
print i
そうすれば、100個の引数を簡単に与えることができます。
Dart でそのようなことを行うにはどうすればよいですか?
どうも。
クラスでメソッドを使用できますnoSuchMethod
(おそらくメソッドと組み合わせて使用 できますcall()
が、試したことはありません)。しかし、これを使用すると、ダーツ エディターのいくつかのチェック機能が失われるようです (少なくとも私にとっては)。
メソッドにはInvocation
、メソッド名と名前のないすべてのパラメーターをリストとして、すべての名前付きパラメーターをハッシュマップとして含むパラメーターとしてインスタンスがあります。
との詳細については、こちらを参照してください。ただし、リンクには、マイルストーン 4 には適用されない古い情報が含まれています。変更については、こちらを参照してください。noSuchMethod
call()
このようなもの:
typedef dynamic FunctionWithArguments(List<dynamic> positionalArguments, Map<Symbol, dynamic> namedArguments);
class MyFunction
{
final FunctionWithArguments function;
MyFunction(this.function);
dynamic noSuchMethod(Invocation invocation) {
if(invocation.isMethod && invocation.memberName == const Symbol('call')) {
return function(invocation.positionalArguments, invocation.namedArguments);
}
return;
}
}
使用法:
class AClass {
final aMethod = new MyFunction((p, n) {
for(var a in p) {
print(a);
}
});
}
var b = new AClass();
b.aMethod(12, 324, 324);