scala varargs(Any *)包裹了两次

时间:2012-09-16 08:58:34

标签: scala variadic-functions

  def main(args: Array[String]) {
      foo("hello")
  }

  def foo(args:Any*){
    bar(args)
  }

  def bar(args:Any *){
    println(args)
  }

查看上面的代码,输出是WrappedArray(WrappedArray(hello))

  

String'hello'被包裹两次,如何避免这个

1 个答案:

答案 0 :(得分:5)

bar的调用中,写下:

bar(args: _*)

这告诉编译器使用args中的参数,此时此参数与Seq[T]非常相似,并将它们分别传递给bar,而不是考虑{ {1}}是args接受的第一个重复参数。