跳至主要内容

Scala 把 Function 當參數的 Function

High Order Function

  • High Order Function : 把 Function 當參數的 function
  • 當參數的 function 可以是
    • lambda function 的名稱
    • def function 的名稱

//High Order Function
def addition(a: Int, b: Int, f: (Int, Int) => Int): Int = f(a, b)

// 以 lambda 的形式定義 function
val squareSum = (x: Int, y: Int) => (x * x + y * y)

// 這是個 function
def tripleSum(x: Int, y: Int) = {
x * x + x + y * y * y
}

// lambda
addition(1, 3, squareSum)

//function
addition(1, 3, tripleSum)