在Dart中,=>
符号用于缩写单行函数的语法。此语法通常称为箭头函数表达式或 Lambda 表达式。
箭头函数表达式最常见的用途是作为集合的迭代器或回调函数。例如:
// 普通函数写法 void printInt(int i) { print(i); } // Arrow Function 写法 void printInt(int i) => print(i);
这样会将传入的 int
值直接打印出来,与普通函数写法效果完全一致,但是更简洁易读。当然,如果函数体比较复杂或者需要多条语句的时候,建议还是使用普通函数写法。
除了上面的示例外,箭头函数表达式可以与集合类方法相结合,例如:
final List<String> words = ['Flutter', 'is', 'awesome']; final lengths = words.map((word) => word.length);
上面的代码使用 map()
方法和箭头函数表达式将字符串列表转化成了整型列表,整型列表包含了每个字符串的长度。
在计算机编程中,箭头函数(也称为Lambda表达式)是一种具有简单语法的匿名函数。它们是一种快速编写小型函数的方法,并且经常用于传递函数作为参数。
在箭头函数中,“=>” 符号用于分离函数声明和函数体。下面是一个简单的示例:
(int x, int y) => x + y
这个箭头函数接受两个整数 x
和 y
作为输入,并返回它们的总和。因为它只包含单个表达式,所以它将自动返回这个结果。
在Dart中,箭头函数通常用于作为集合类方法(如 map,where,reduce等)的参数或将函数赋值给变量时来提高代码的简洁性和可读性。
下面是两个使用箭头函数的示例:
// 使用箭头函数将字符串列表转换为整数列表并筛选出大于0的数字
final List<String> strings = ["1", "2", "3", "-4"];
final numbers = strings.map((str) => int.parse(str)).where((n) => n > 0);
print(numbers); // [1, 2, 3]
// 将箭头函数复制给一个变量进行存储和调用
final noArgsFunc = () => print("Hello!");
noArgsFunc(); // 打印 "Hello!"
当然,箭头函数仍然需要遵循函数的基本规则(如正确的参数类型、返回类型等),但它可以使代码更加简洁明了。