web-dev-qa-db-fra.com

Comment passer Scala tableau en Scala vararg?

Considérons le code ci-dessous:

private def test(some:String*){

}

private def call () {
  val some = Array("asd", "zxc")
  test(some)
}

Il imprime expect String, found Array[String] Pourquoi? Les Scala varargs ne sont-ils pas des tableaux?

Note

J'ai trouvé plusieurs questions sur Stack Overflow à propos de Scala varargs, mais toutes concernent l'appel de méthodes Java varargs ou la conversion de listes Scala en tableaux.

59
Cherry

Ajouter :_* au paramètre dans test comme ceci

test(some:_*)

Et cela devrait fonctionner comme prévu.

Si vous vous demandez ce que cette magie :_* fait, s'il vous plaît se référer à cette question .

99
Yuhuan Jiang

C'est simple:

def test(some:String*){}

def call () {
  val some = Array("asd", "zxc")
  test(some: _*)
}
37