【问题标题】:Passing an "Any*" varargs argument to another function that takes "Any*"将“Any*”可变参数参数传递给另一个采用“Any*”的函数
【发布时间】:2017-05-31 13:59:44
【问题描述】:

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

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 或者有更好的方法吗?

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

【问题讨论】:

标签: scala


【解决方案1】:

要将参数作为可变参数传递,您需要这样做

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-01
    相关资源
    最近更新 更多