【问题标题】:Calling a function with an array of parameters in Dart在 Dart 中调用带有参数数组的函数
【发布时间】:2017-08-15 09:33:56
【问题描述】:

我正在尝试使用数组中提供的一组参数调用 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 中是否存在更简洁的方法?

【问题讨论】:

    标签: function methods parameters dart


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      据我所知。目前,Dart 不支持varargs。现在,只需将Iterable 作为参数即可。

      【讨论】:

        【解决方案3】:

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

        目前不支持,但飞镖团队知道此功能。虽然不是他们的优先事项。

        【讨论】:

          猜你喜欢
          • 2017-11-28
          • 2012-07-24
          • 2020-08-09
          • 2021-04-28
          • 2021-11-05
          • 2016-11-13
          • 2017-02-17
          • 2018-10-12
          相关资源
          最近更新 更多