“Anonymous functions”的版本间差异

本页内容
(创建页面,内容为“{{DISPLAYTITLE:匿名函数}}8 = Scala 匿名函数 = Scala 函数 Scala 中定义匿名函数的语法很简单,箭头左边是参数列表,右边是函数体。 使用匿名函数后,我们的代码变得更简洁了。 下面的表达式就定义了一个接受一个Int类型输入参数的匿名函数: <sample title="" desc="" lang="scala" hererun="1"> var inc = (x:Int) => x+1 </sample> 上述定…”)
 
Neo讨论 | 贡献
无编辑摘要
第10行: 第10行:
下面的表达式就定义了一个接受一个Int类型输入参数的匿名函数:
下面的表达式就定义了一个接受一个Int类型输入参数的匿名函数:


<sample title="" desc="" lang="scala" hererun="1">
<pre>
var inc = (x:Int) => x+1
var inc = (x:Int) =&gt; x+1
</sample>
</pre>
上述定义的匿名函数,其实是下面这种写法的简写:
上述定义的匿名函数,其实是下面这种写法的简写:


<sample title="" desc="" lang="scala" hererun="1">
<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;
}
}  
</sample>
</pre>
以上实例的 inc 现在可作为一个函数,使用方式如下:
以上实例的 inc 现在可作为一个函数,使用方式如下:


<sample title="" desc="" lang="scala" hererun="1">
<pre>
var x = inc(7)-1
var x = inc(7)-1
</sample>
</pre>
同样我们可以在匿名函数中定义多个参数:
同样我们可以在匿名函数中定义多个参数:


<sample title="" desc="" lang="scala" hererun="1">
<pre>
var mul = (x: Int, y: Int) => x*y
var mul = (x: Int, y: Int) =&gt; x*y
</sample>
</pre>
mul 现在可作为一个函数,使用方式如下:
mul 现在可作为一个函数,使用方式如下:


<sample title="" desc="" lang="scala" hererun="1">
<pre>
println(mul(3, 4))
println(mul(3, 4))
</sample>
</pre>
我们也可以不给匿名函数设置参数,如下所示:
我们也可以不给匿名函数设置参数,如下所示:


<sample title="" desc="" lang="scala" hererun="1">
<pre>
var userDir = () => { System.getProperty("user.dir") }
var userDir = () =&gt; { System.getProperty(&quot;user.dir&quot;) }
</sample>
</pre>
userDir 现在可作为一个函数,使用方式如下:
userDir 现在可作为一个函数,使用方式如下:


<sample title="" desc="" lang="scala" hererun="1">
<pre>
println( userDir() )
println( userDir() )
</sample>
</pre>
==
==


<sample title="" desc="" lang="scala" hererun="1">  
<sample title="" desc="" lang="docker" hererun="1">
object Demo {
object Demo {


第64行: 第64行:
}
}


  </sample>
</sample>
将以上代码保持到 Demo.scala 文件中,执行以下命令:
将以上代码保持到 Demo.scala 文件中,执行以下命令:


<sample title="" desc="" lang="scala" hererun="1">
<pre>
$ scalac Demo.scala
$ scalac Demo.scala
$ scala Demo
$ scala Demo
</sample>
</pre>
输出结果为:
输出结果为:


<sample title="" desc="" lang="scala" hererun="1">
<pre>
multiplier(1) value = 3
multiplier(1) value = 3
multiplier(2) value = 6
multiplier(2) value = 6
</sample>
</pre>
[[scala functions|Scala 函数]]
[[scala functions|Scala 函数]]

2022年10月14日 (五) 16:51的版本

Scala 匿名函数

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

Scala 函数

此页面最后编辑于2022年10月14日 (星期五) 16:51。