高階函數(Higher-Order Function)就是操做其餘函數的函數。 Scala 中容許使用高階函數, 高階函數可使用其餘函數做爲參數,或者使用函數做爲輸出結果。函數
object HelloWorld { def main(args: Array[String]): Unit = { /** * 這兒的sumAB 是一個函數對象,能夠理解成C語言中的函數指針,指向下面定義的「sumAB」這個函數類型 * 吧一個函數對象作爲參數,傳遞給execute函數 */ execute(sumAB, 2) /** *returnFunc() 返回一個函數,後面接圓括號表示調用返回的函數 */ println(returnFunc()(3,4)) } /** * @param t 函數對象。t函數對象接受2個Int的參數,返回值是Int * 能夠理解成C語言中的函數指針,接受一個指針,該指針是指向 接受兩個Int類型的參數返回值是Int的函數 * @param b Int類型參數 * @return */ def execute(t:(Int,Int) => Int, b: Int) = { println("在 execute方法內") println("參數: " + t(b,b)) t(b,b) } def sumAB(a: Int, b:Int): Int = { println("a+b=" + a+b) a+b } /** * * @return 返回函數,能夠理解成C語言中的指針函數。該函數返回一個指針,指針(函數指針)。 * 返回的該指針指向 接受2個Int參數,返回Int值的函數 */ def returnFunc():(Int,Int)=>Int = { def sumCD(c:Int,d:Int):Int = { c+d } sumCD } }