“Anonymous functions”的版本间差异
本页内容
(创建页面,内容为“{{DISPLAYTITLE:匿名函数}}8 = Scala 匿名函数 = Scala 函数 Scala 中定义匿名函数的语法很简单,箭头左边是参数列表,右边是函数体。 使用匿名函数后,我们的代码变得更简洁了。 下面的表达式就定义了一个接受一个Int类型输入参数的匿名函数: <sample title="" desc="" lang="scala" hererun="1"> var inc = (x:Int) => x+1 </sample> 上述定…”) |
无编辑摘要 |
||
第10行: | 第10行: | ||
下面的表达式就定义了一个接受一个Int类型输入参数的匿名函数: | 下面的表达式就定义了一个接受一个Int类型输入参数的匿名函数: | ||
< | <pre> | ||
var inc = (x:Int) = | var inc = (x:Int) => x+1 | ||
</pre> | |||
上述定义的匿名函数,其实是下面这种写法的简写: | 上述定义的匿名函数,其实是下面这种写法的简写: | ||
< | <pre> | ||
def add2 = new Function1[Int,Int]{ | def add2 = new Function1[Int,Int]{ | ||
def apply(x:Int):Int = x+1; | def apply(x:Int):Int = x+1; | ||
} | } | ||
</pre> | |||
以上实例的 inc 现在可作为一个函数,使用方式如下: | 以上实例的 inc 现在可作为一个函数,使用方式如下: | ||
< | <pre> | ||
var x = inc(7)-1 | var x = inc(7)-1 | ||
</pre> | |||
同样我们可以在匿名函数中定义多个参数: | 同样我们可以在匿名函数中定义多个参数: | ||
< | <pre> | ||
var mul = (x: Int, y: Int) = | var mul = (x: Int, y: Int) => x*y | ||
</pre> | |||
mul 现在可作为一个函数,使用方式如下: | mul 现在可作为一个函数,使用方式如下: | ||
< | <pre> | ||
println(mul(3, 4)) | println(mul(3, 4)) | ||
</pre> | |||
我们也可以不给匿名函数设置参数,如下所示: | 我们也可以不给匿名函数设置参数,如下所示: | ||
< | <pre> | ||
var userDir = () = | var userDir = () => { System.getProperty("user.dir") } | ||
</pre> | |||
userDir 现在可作为一个函数,使用方式如下: | userDir 现在可作为一个函数,使用方式如下: | ||
< | <pre> | ||
println( userDir() ) | println( userDir() ) | ||
</pre> | |||
== | == | ||
<sample title="" desc="" lang=" | <sample title="" desc="" lang="docker" hererun="1"> | ||
object Demo { | object Demo { | ||
第64行: | 第64行: | ||
} | } | ||
</sample> | |||
将以上代码保持到 Demo.scala 文件中,执行以下命令: | 将以上代码保持到 Demo.scala 文件中,执行以下命令: | ||
< | <pre> | ||
$ scalac Demo.scala | $ scalac Demo.scala | ||
$ scala Demo | $ scala Demo | ||
</pre> | |||
输出结果为: | 输出结果为: | ||
< | <pre> | ||
multiplier(1) value = 3 | multiplier(1) value = 3 | ||
multiplier(2) value = 6 | multiplier(2) value = 6 | ||
</pre> | |||
[[scala functions|Scala 函数]] | [[scala functions|Scala 函数]] |
2022年10月14日 (五) 16:51的版本
Scala 匿名函数
Scala 中定义匿名函数的语法很简单,箭头左边是参数列表,右边是函数体。
使用匿名函数后,我们的代码变得更简洁了。
下面的表达式就定义了一个接受一个Int类型输入参数的匿名函数:
var inc = (x:Int) => x+1
上述定义的匿名函数,其实是下面这种写法的简写:
def add2 = new Function1[Int,Int]{ def apply(x:Int):Int = x+1; }
以上实例的 inc 现在可作为一个函数,使用方式如下:
var x = inc(7)-1
同样我们可以在匿名函数中定义多个参数:
var mul = (x: Int, y: Int) => x*y
mul 现在可作为一个函数,使用方式如下:
println(mul(3, 4))
我们也可以不给匿名函数设置参数,如下所示:
var userDir = () => { System.getProperty("user.dir") }
userDir 现在可作为一个函数,使用方式如下:
println( userDir() )
==
示例
object Demo {
def main(args: Array[String]) {
println( "multiplier(1) value = " + multiplier(1) )
println( "multiplier(2) value = " + multiplier(2) )
}
var factor = 3
val multiplier = (i:Int) => i * factor
}
将以上代码保持到 Demo.scala 文件中,执行以下命令:
$ scalac Demo.scala $ scala Demo
输出结果为:
multiplier(1) value = 3 multiplier(2) value = 6