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.
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 .
C'est simple:
def test(some:String*){}
def call () {
val some = Array("asd", "zxc")
test(some: _*)
}