Scala匿名函数
示例
匿名函数是已定义但未分配名称的函数。
以下是一个匿名函数,它接受两个整数并返回总和。
(x: Int, y: Int) => x + y
可以将结果表达式分配给val:
val sum = (x: Int, y: Int) => x + y
匿名函数主要用作其他函数的参数。例如,map集合上的函数需要另一个函数作为其参数:
// Returns Seq("FOO", "BAR", "QUX")
Seq("Foo", "Bar", "Qux").map((x: String) => x.toUpperCase)匿名函数的参数类型可以省略:自动推断类型:
Seq("Foo", "Bar", "Qux").map((x) => x.toUpperCase)如果只有一个参数,则可以省略该参数周围的括号:
Seq("Foo", "Bar", "Qux").map(x => x.toUpperCase)下划线速记
有一种甚至更短的语法,不需要参数名称。上面的代码片段可以写成:
Seq("Foo", "Bar", "Qux").map(_.toUpperCase)_代表位置上的匿名函数参数。对于具有多个参数的匿名函数,每次出现_都会引用不同的参数。例如,以下两个表达式是等效的:
// Returns "FooBarQux" in both cases
Seq("Foo", "Bar", "Qux").reduce((s1, s2) => s1 + s2)
Seq("Foo", "Bar", "Qux").reduce(_ + _)使用此速记时,由positional表示的任何参数_都只能以相同的顺序被引用一次。
没有参数的匿名函数
要为不带参数的匿名函数创建一个值,请将参数列表留空:
val sayHello = () => println("hello")
热门推荐
1 训练狗狗基础
2 怎么训练狗狗笑
3 怎么训练狗狗卧下
4 上海狗狗训练基地
5 训练狗狗排便
6 狗狗基础训练
8 如何训练狗狗装死
9 狗狗站姿训练
10 狗狗训练用品
11 训练狗狗吧
12 狗狗要怎么训练
13 怎么训练狗狗玩球
14 训练狗狗唤回
15 狗狗训练躺下
16 狗狗训练指令
17 狗狗的训练技巧
18 狗狗不好训练