在Scala代码中
val s = Set(List(1,2,3).toSeq:_*)
toSeq:_*
语法如何工作?我知道代码的作用,我知道toSeq
做了什么,我理解List(1,2,3).toSeq:Seq[Int]
。 toSeq:_*
是一个特例吗?
答案 0 :(得分:2)
toSeq
在这里没有完成任何事情,应该省略。以下是等效的:
Set(List(1, 2, 3): _*)
(或者甚至更好,只需写List(1, 2, 3).toSet
。)
由于您说您知道代码的作用,我假设您理解_*
类型注释将列表标记为序列参数(如果没有,请参阅the language specification)的4.6.2。这适用于任何Seq
,包括List
,因此使用toSeq
显式转换列表只会更加混乱。