Wie übergebe ich ein Scala-Array an die Scala-Vararg-Methode?


76

Betrachten Sie den folgenden Code:

private def test(some:String*){

}

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

Es druckt expect String, found Array[String]Warum? Sind Scala-Varargs keine Arrays?

Hinweis

Ich habe im Stapelüberlauf mehrere Fragen zu Scala-Varargs gefunden, aber bei allen geht es darum, Java-Varargs-Methoden aufzurufen oder Scala-Listen in Arrays zu konvertieren.

Antworten:


122

Anfügen :_*an den Parameter in testwie diese

test(some:_*)

Und es sollte so funktionieren, wie Sie es erwarten.

Wenn Sie sich fragen, was diese Magie :_*bewirkt, beziehen Sie sich bitte auf diese Frage .


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.