📅  最后修改于: 2023-12-03 15:30:22.213000             🧑  作者: Mango
闭包是一个重要的概念,也是 Dart 编程语言中非常常见的特性。本文将介绍 Dart 中的闭包,包括其定义、用法以及一些示例。
闭包是指在一个函数中定义了另一个函数,并且内部函数可以访问外部函数的变量和参数。这些变量和参数可以被内部函数访问,即使外部函数已经返回了。
在 Dart 中,闭包可以理解为一个函数对象,其中包含了可以访问其定义时作用域内变量的函数。
使用闭包可以实现一些高阶功能,例如:
Function makeAdder(num addBy) {
return (num i) => addBy + i;
}
void main() {
// 创建一个函数,其中addBy被捕获
var add3 = makeAdder(3);
// 使用创建的函数
print(add3(5)); // 输出:8
}
void forEach(List list, Function f) {
for (var i = 0; i < list.length; i++) {
f(list[i]);
}
}
void main() {
List numbers = [1, 2, 3, 4];
// 使用闭包将每个元素加倍
forEach(numbers, (item) {
print(item * 2);
});
}
Function outer() {
var x = 0;
return () {
x++;
print(x);
};
}
void main() {
var fn = outer();
fn(); // 输出:1
fn(); // 输出:2
}
闭包是 Dart 中一个非常有用的特性。我们可以使用闭包实现一些高阶功能,例如返回一个函数、传递函数作为参数、以及实现类似私有变量的功能。在应用程序中,我们可以使用闭包来优化代码,并且让其更易于维护。