作为Dart docsdescribe吧,因为这是purely OOP language,Functions也就是object.

这可以在JS中完成,如下所示:

function functionReturningFunctionJS() {
  return function functionReturnedByFunctionJS() {
      return "This is function returned by function";
  }
}

但我无法从函数中返回函数,如下面的n DART:

Function functionReturningFunctionDart() {
  return  functionReturnedByFunctionDart(){
    return "This is function Returned By function";
  }
} 

正确的方法是什么?

推荐答案

请参考下面的add函数,它返回另一个函数(或闭包).

void main() {
  Function addTen = add(10);
  print(addTen(5)); //15
  print(add(10)(5)); //15
}

Function add(int a) {
    int innerFunction(b) {
        return a + b;
    }
    return innerFunction;
}

使用匿名函数:

void main() {
  Function addTen = add(10)
  print(addTen(5)); //15
  print(add(10)(5)); //15
}

Function add(int a) {
    return (b) => a + b;
}

Dart相关问答推荐

构造函数:将预处理的参数存储在传递给最终字段的辅助变量中

如何在 Dart 2.17+ 中处理future 的枚举值

根据 Id 比较两个不同的 List

如何在 Flutter 的 firebase_database 中执行事务?

Flutter Getx - 未找到Xxx.您需要调用Get.put(Xxx()) - 但我已调用 Get.put(Xxx())

Dart 包对 git repo 子目录的依赖

VS Code 无法识别 Flutter 中的单元测试

zsh:找不到命令:pub

MappedListIterable 不是子类型

运行时出现Flutter错误:Error waiting for a debug connection: Bad state: No element

Mockito - 在空安全迁移后存根方法

你如何在 Polymer 中调度和监听自定义事件?

如何在 Dart 中设置文本框的值?

我如何在屏幕上弹出特定的Flutter

iOS 上 Flutter 的代码设计错误

一个集合如何确定两个对象在dart中相等?

Dart vs Haxe - Current state, hype, usability, ...?

Dart 的Expando功能是什么,它有什么作用?

_internal 的语义是什么?

将`_`(即下划线)作为唯一参数传递给 Dart 语言函数是什么意思?