我正在使用Scala 2.11。如果我创建像一个函数:VarArgs A * vs Seq [A]参数到函数
def func1 (a: Int*) : Int = a.reduce(_+_)
我把它用
func1(1,2,3,4)
// 10
func1(Seq(1,2,3,4) : _*)
//10
这是罚款。
但当我尝试定义函数文本,如:
val func2:(Int*) => Int = _.reduce(_+_)
我得到一个错误说:
<console>:5: error: type mismatch;
found : Int* => Int
required: Seq[Int] => Int
lazy val $result = INSTANCE.`func2`
为什么它要在第二种情况下Seq[Int]
但不是在第一,虽然定义是一样的吗?
在第一种情况下如何传递可变参数以使reduce可以通过它们被调用?
可能重复的[Scala中的函数对象的可变参数?](https://stackoverflow.com/questions/8623126/error-with-varargs-for-function-objects-in-scala) – Suma