Scala - 可变数量的函数参数作为方法参数

时间:2018-01-18 21:26:14

标签: scala function methods variadic-functions

我是Scala的新手,他正在寻找一种创建方法/函数的方法,该方法/函数将可变数量的函数作为参数。

常规VarArgs中使用*表示法的示例

def someMethod(aNumber: Int, multipleFunctions: Int => Boolean*) = {
    var flag = true
    for (func <- multipleFunctions; if (!func(aNumber)) flag = false
    flag
}

我意识到我可以接受一系列函数,但是如果它起作用的话,感觉必须有一种方法可以使用var args。

1 个答案:

答案 0 :(得分:1)

*令牌的评估优先于=>,因此您可以通过将Int => Boolean类型括在括号中来解决问题:

def someMethod(aNumber: Int, multipleFunctions: (Int => Boolean)*)
//                                              ^     here!    ^