Scala--高阶函数详细介绍
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lqding.blog.51cto.com/9123978/1741885
1
|
def funName(para 1 : Type 1 ,para 2 : Type 2 ) : Type = { do some things }
|
1
|
def ceil(x : Double) : Double = java.lang.Math.ceil(x)
|
1
2
3
|
def valueForCeil(f : (Double) = >Double,value : Double) = {
f(value)
}
|
1
2
3
4
5
6
7
8
9
|
package com.dt.scala.hello
import scala.math. _
object ScalaInAction {
def valueForCeil(f : (Double) = >Double,value : Double) = {
f(value)
} //> valueForCeil: (f: Double => Double, value: Double)Double
valueForCeil(ceil _ , 0.25 ) //> res0: Double = 1.0
}
|
1
2
3
4
5
6
7
8
9
|
package com.dt.scala.hello
import scala.math. _
object ScalaInAction {
def valueForCeil(f : (Double) = >Double,value : Double) = {
f(value)
} //> valueForCeil: (f: Double => Double, value: Double)Double
valueForCeil(sqrt _ , 0.25 ) //> res0: Double = 0.5
}
|
1
2
3
|
def addBy(factor : Int) = {
(x : Double) = > factor + x
}
|
1
|
(x : Double) = > { do some things }
|
1
2
3
4
5
6
7
8
9
10
11
|
package com.dt.scala.hello
import scala.math. _
object ScalaInAction {
def addBy(factor : Int) = {
(x : Double) = > factor + x
} //> addBy: (factor: Int)Double => Double
val addFive = addBy( 5 ) //> addFive : Double => Double = <function1>
println(addFive( 20 )) //> 25.0
}
|
1
|
( 1 to 9 ).map(x = > "*" * x).foreach(println)
|
1
|
x = > "*" * x
|
1
|
( 1 to 9 ).map( "*" * _ ).foreach(println)
|