_*是什么意思

Dan*_* Wu 0 syntax scala

val numbers = scala.collection.parallel.mutable.ParTrieMap(
    (1 until 100) zip (1 until 100): _*
  ) map { case (k, v) => (k.toDouble, v.toDouble) }
Run Code Online (Sandbox Code Playgroud)

对于上面的代码,我知道它(1 until 100) zip (1 until 100)会返回类似于 Map 的东西,但是_*遵循它的含义是什么?

Vik*_*dya 5

Programming in Scala Section 8.8 重复参数有一个例子的快速解释: _* 符号告诉编译器将每个元素作为它自己的参数传递给 ParTrieMap

来自第 8.8 节:调用时 val arr = Array("What's", "up", "doc?")

echo(arr: _*) 
Run Code Online (Sandbox Code Playgroud)

它会打印

What's
up
doc?
Run Code Online (Sandbox Code Playgroud)

arr: _* 相当于类型声明,它告诉编译器将“arr”视为重复参数,例如 vararg

在这篇文章中也有很好的解释。