【问题标题】:Map the result of a getter with parameter in dart使用 dart 中的参数映射 getter 的结果
【发布时间】:2014-12-10 11:37:53
【问题描述】:

在 Dart 中我有

typedef List<int> Callback(int n);

StyleCallback get fn {
  return (int n) {
    return new List.generate(n, (i) {
      return i;
    });
  };
}

我想编写一个获取 fn(n) 的结果并将某个函数 f 应用于它的每个元素的 getter。例如,将 List 的所有元素乘以 2。

Callback get myFunc {
    return Iterable.map(fn, (x) => 2 * x);
}

但是集合没有这样的地图功能。您能建议正确的方法吗?

【问题讨论】:

  • 我不确定我是否理解您的问题。你能添加一个更具体的例子吗(不一定是有效的 Dart 代码)。你要传递什么值,结果应该是什么样子?
  • @günter-zöchbauer 感谢您的回复!我已经更新了问题。
  • 我仍然很难理解你试图完成什么。也许您可以评论您想要的内容,而不是我的“答案”中的代码。
  • fn(x) =. 2 * x 都是函数,所以我不确定您要映射哪个迭代,或者 myFunc 的参数应该是什么。你想要类似的东西:Callback get myFunc =&gt; (n) =&gt; fn(n).map((x) =&gt; 2 * x);

标签: collections map dart


【解决方案1】:

不是答案,但我不可能将此代码放在评论中。

你可以这样做

Iterable iter = [1,2,3,4];

int fn(int x) => x * x;

List<String> get myFunc {
  return iter.map((x) => fn(x)).toList();
}

void main() {
  print(myFunc);
}

打印

[1、4、9、16]

但我不知道你的 typedef 适合放在哪里

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-23
    • 2021-10-09
    • 2017-11-18
    • 1970-01-01
    • 1970-01-01
    • 2021-07-01
    • 2018-12-21
    • 1970-01-01
    相关资源
    最近更新 更多