我基本上在Dart中寻找JavaScript arguments
功能。
Dart可以吗?
答案 0 :(得分:6)
您必须使用noSuchMethod
来执行此操作(请参阅Creating function with variable number of arguments or parameters in Dart)
在班级:
class A {
noSuchMethod(Invocation i) {
if (i.isMethod && i.memberName == #myMethod){
print(i.positionalArguments);
}
}
}
main() {
var a = new A();
a.myMethod(1, 2, 3); // no completion and a warning
}
或在现场级:
typedef dynamic OnCall(List l);
class VarargsFunction extends Function {
OnCall _onCall;
VarargsFunction(this._onCall);
call() => _onCall([]);
noSuchMethod(Invocation invocation) {
final arguments = invocation.positionalArguments;
return _onCall(arguments);
}
}
class A {
final myMethod = new VarargsFunction((arguments) => print(arguments));
}
main() {
var a = new A();
a.myMethod(1, 2, 3);
}
第二个选项允许myMethod
完成代码并避免警告。