Scala 中高阶函数的简单使用
object Test01_HighFunc {
def main(args: Array[String]): Unit = {
def sayHi(name: String): String = {
println(s"Hi $name")
s"hi $name"
}
sayHi("linhai")
println("test 1")
val func1: String = sayHi("linhai")
func1
val func2 = sayHi _
func2("linhai")
val func3: String => String = sayHi
func2("jinlian")
func3("dalang")
def sumAB(a: Int, b: Int): Int = a + b
println(sumAB(3, 2))
def difAB(a: Int, b: Int): Int = a - b
println(difAB(3, 1))
def funcAB(a: Int, b: Int, func: (Int, Int) => Int): Int = {
func(a, b)
}
val i = funcAB(10, 20, difAB)
println(i)
println(funcAB(10, 20, 2 * _ / 4 * _))
def sumByX(x: Int) = {
def sumXY(y: Int): Int = {
x + y
}
sumXY _
}
val function = sumByX(10)
println(function)
val i1 = function(20)
println(i1)
val i2 = sumByX(10)(20)
println(i2)
}
}