我知道如何使用可变长度参数定义方法:
case class taxonomy(vocabularies:(String,Set[String])*)
并且客户端代码非常干净:
val terms=taxonomy("topics"->Set("economic","politic")
,"tag"->Set("Libya","evolution")
)
但我想知道如果我有一个变量(而不是变量序列),我怎么能使用这个case类:
val notFormattedTerms = Map("topics"->Set("economic","politic")
,"tag"->Set("Libya","evolution"))
答案 0 :(得分:24)
taxonomy(notFormattedTerms.toSeq:_*)
使用: _*
,您实际上转换了一个序列参数,使其看起来好像已经将几个参数传递给了可变长度方法。但是,此转换仅适用于(有序?)简单序列类型,并且在本例中不适用于Map
。因此,必须先使用明确的toSeq
。