我尝试使用数组中提供的一组参数调用dart函数。我希望能够将参数传递给函数,而不知道将有多少参数。
例如:
someFunc(var a, var b, var c) {...}
paramArray = [1,2,3];
callFunction(var func, var params) {
//Here is a sloppy workaround to what I want the functionality to be
switch(params.length) {
case 0:
func()
break;
case 1:
func(params[0])
break;
case 2:
func(params[0], params[1])
break;
...
}
}
callFunction(someFunc, paramArray);
在不改变someFunc签名的情况下,是否有更简洁的方法在dart中执行此操作?
答案 0 :(得分:2)
Function.apply方法正是您想要的。
您可以执行Function.apply(func, params)
,如果参数匹配,则会调用func
(如果参数不匹配则会调用{。}}。
答案 1 :(得分:1)
据我所知。此时,Dart不支持varargs
。现在,只需将Iterable
作为参数。
答案 2 :(得分:0)
我不久前发布了一个类似的问题:Packing/Unpacking arguments in Dart
目前尚不支持,但飞镖队已了解此功能。不过他们的优先权。