我是斯卡拉的新手.
我想了解下面代码的语法
object PlainSimple {
def main(args:Array[String])
{
val m = add(5)
println(m(3))
}
def add(x:Int):Int=>Int =
{
y=>y+x
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是我们在哪里说add函数正在返回另一个函数?
什么Int=>Int意思?
在add函数里面叫做y什么?为什么我们在没有声明的情况下使用它呢?
如果想在add方法中添加多行,需要做什么?
我的问题是我们在哪里说add函数正在返回另一个函数?
就在这儿
def add(x: Int): Int => Int = y => y + x
Run Code Online (Sandbox Code Playgroud)
Int => Int是一种功能类型.这只是语法糖,但你也可以把它写成
def add(x:Int): Function1[Int, Int] = y => y + x
Run Code Online (Sandbox Code Playgroud)
现在,是什么y?y => y + x是一个lambda,即一个匿名函数.这个lambda有一个我们现在称之为的参数y.
这里是scala中匿名函数及其语法的一个很好的参考:http://docs.scala-lang.org/tutorials/tour/anonymous-function-syntax.html
为了在方法中有多行,只需使用大括号
def add(x:Int): Function1[Int, Int] = { y =>
println("whaveter")
y + x
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
81 次 |
| 最近记录: |