Dart 中的函数式编程
将函数当做参数进行传递
将函数直接赋值给变量
对函数进行解构,只传递给函数一部分参数来调用它,让它返回一个函数去处理剩下的参数(也被称为柯里化)
创建一个可以被党作为常量的匿名函数(也被称为 lambda 表达式,在 Java 的 JDK 8 release 中支持了 lambda 表达式)
Dart 支持所有的这些特性,在 Dart 中,每个函数都是一个对象,并且每个函数都有它的类型 Function,这意味着所有函数都可以支持赋值操作,以及都可以作为参数传递给其他的函数。
String scream(int length) => "A${'a' * length}h!";
main() {
final values = [1, 2, 3, 5, 10, 50];
// for (var length in values) {
// print(scream(length));
// }
values.map(scream).forEach(print);
}