Image Description

作为面向对象的编程语言,函数在Dart中也是一个对象,它的类型是 Function。它可以被赋值给变量,也可以作为参数传递。

声明函数

bool isNoble(int atomicNumber) {
  return _nobleGases[atomicNumber] != null;
}

函数作为参数传递

void printElement(int element) {
  print(element);
}

var list = [1, 2, 3];

list.forEach(printElement);

带参数的函数

void enableFlags(bold bold = false, bool hidden = false){
    // ...
}

调用

enableFlags(bold: true, hidden: false);

闭包函数

Dart 中的闭包函数可以简单理解为,定义在函数内部的函数。

//makeAdder 返回一个闭包函数
Function makeAdder(num addBy) {
  //闭包函数访问addBy参数
  return (num i) => addBy + i;
}

void main() {
  //创建一个闭包函数,绑定参数2
  var add2 = makeAdder(2);

  //创建一个闭包函数,绑定参数4
  var add4 = makeAdder(4);

  //分别调用两个闭包函数,并打印结果
  print(add2(3));
  print(add4(3));
}