在Dart中调用带有参数数组的函数

时间:2017-03-23 01:39:59

标签: function methods parameters dart

我尝试使用数组中提供的一组参数调用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中执行此操作?

3 个答案:

答案 0 :(得分:2)

Function.apply方法正是您想要的。 您可以执行Function.apply(func, params),如果参数匹配,则会调用func(如果参数不匹配则会调用{。}}。

答案 1 :(得分:1)

据我所知。此时,Dart不支持varargs。现在,只需将Iterable作为参数。

答案 2 :(得分:0)

我不久前发布了一个类似的问题:Packing/Unpacking arguments in Dart

目前尚不支持,但飞镖队已了解此功能。不过他们的优先权。