首页 > 解决方案 > 如何从使用 Function 创建的方法返回 int 值?

问题描述

说,我有:

int Function(int x, int y) add() {
  return x + y; // Error
}

PS:我知道我可以使用

int add(int x, int y) => x + y;

但我想在Function这里使用 a,您可能需要检查这个这个线程以了解主要要求是什么。

标签: dart

解决方案


您返回的不是函数,而是x + y. 你需要这样做:

int Function(int x, int y) add = (x, y) {
  return x + y;
};

可以像普通函数一样使用:

print(add(1,2)); // 3

这将为add一个函数创建一个变量,该函数接受两个int参数并返回总和。

或者,如果您想要一个返回方法的方法:

int Function(int x, int y) add() {
  return (x, y) {
    return x + y;
  };
}

使用如下:

print(add()(1,2)); // 3

在最后一个示例中,您可以执行类似的操作来根据输入构造一个函数,例如有一些您想要设置一次的默认参数:

int Function(int x, int y) add(int alwaysAdd) {
  return (x, y) {
    return x + y + alwaysAdd;
  };
}

void main() {
  final addMethod = add(10);

  print(addMethod(1,2)); // 13
  print(addMethod(5,5)); // 20
}

推荐阅读