This question already has answers here:
What does `:_*` (colon underscore star) do in Scala?

(4 个回答)


7年前关闭。




在 Scala 代码中
val s = Set(List(1,2,3).toSeq:_*)
toSeq:_* 语法是如何工作的?我知道代码做什么,我知道 toSeq 做什么,我理解 List(1,2,3).toSeq:Seq[Int]toSeq:_* 是特例吗?

最佳答案

toSeq 在这里没有完成任何事情,应该省略。以下是等效的:

Set(List(1, 2, 3): _*)

(或者甚至更好,只需编写 List(1, 2, 3).toSet 。)

既然你说你知道代码的作用,我假设你理解将列表标记为序列参数的 _* 类型注释(如果不是,请参阅 the language specification 的第 4.6.2 节)。这适用于任何 Seq ,包括 List ,因此使用 toSeq 显式转换列表只是额外的困惑。

关于scala - Scala toSeq :_* syntax work? 如何,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23887867/

10-12 12:35