将函数作为参数传递

时间:2016-06-22 20:11:13

标签: scala

我目前正在学习高阶函数,并且正在尝试实现一个函数。

def bigger(n: Integer, m: Integer):Integer={
    if(n>m) return n
    else return m
}

def bigT(t: Tuple3[Int, Int,(Int,Int)=>Int]): Integer={
    return t._3(t._1,t._2)
}

val tup=(5,2,bigger)

第二个函数接收一个包含两个整数的元组和将用它们执行的函数。

当我尝试运行此代码时(使用ideone.com)收到以下错误:

“对象Main中较大的方法缺少参数; 如果要将其视为部分应用函数,请使用“_”跟随此方法     val tup =(5,2,更大)“

我想将名为tup的元组后来传递给函数bigT

1 个答案:

答案 0 :(得分:0)

您感到困惑IntegerInt

尝试在任何地方使用Int

def bigger(n: Int, m: Int) = if(n > m) n else m
def bigT(t: (Int, Int, (Int, Int) => Int)): Int = t._3(t._1, t._2)

val res = bigT((5, 2, bigger))  // 5