Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在scala中使用变长参数_Scala - Fatal编程技术网

在scala中使用变长参数

在scala中使用变长参数,scala,Scala,我知道如何定义具有可变长度参数的方法: case class taxonomy(vocabularies:(String,Set[String])*) 客户端代码非常干净: val terms=taxonomy("topics"->Set("economic","politic") ,"tag"->Set("Libya","evolution") ) 但我想知道,当我有一个变量(而不是一系列变量)

我知道如何定义具有可变长度参数的方法:

  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"))

使用
:*
可以虚拟地转换一个序列参数,使其看起来像是一个多个参数被传递给了可变长度方法。然而,这种转换只适用于(有序的?)简单序列类型,而在本例中,不适用于
映射
。因此,以前必须使用显式的
toSeq

我还不明白为什么这些转换不是隐式的(在适用的情况下)。我想这会让人相当困惑。
taxonomy(notFormattedTerms.toSeq:_*)