将“Any *”varargs参数传递给另一个带有“Any *”的函数

时间:2017-05-31 13:59:45

标签: scala

我有一个类似下面的函数,由脚本自动生成。

def printFunc(args : Any*) : Unit = {
     funcCallHandler.call(args)
}

funcCallHandler中的调用函数如下所示。此函数也从其他生成的函数中获取变量参数。

def call(args : Any*) : Unit = {

   for (arg <- args) {
       /*Check type using a match function
        and add do the rest of the code*/
   }

}

当我传递我从第一个函数到第二个函数的变量参数时,我将它作为WrappedArray传递。有没有办法输入匹配这个WrappedArray还是有更好的方法来做这个?

在第一个函数的情况下未指定类型。

1 个答案:

答案 0 :(得分:3)

要将参数作为varargs传递,您需要执行

 def printFunc(args : Any*) : Unit = {
   funcCallHandler.call(args: _*)
}

否则,args将被理解为Seq[Any]类型的单个参数。