Як передати масив Scala у метод Scala vararg?


76

Розглянемо наведений нижче код:

private def test(some:String*){

}

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

Друкується expect String, found Array[String]Чому? Варарги Scala - це не масиви?

Примітка

Я знайшов кілька запитань щодо переповнення стека щодо вараргів Scala, але всі вони стосуються виклику методів Java varargs або перетворення списків Scala в масиви.

Відповіді:


122

Додайте :_*до параметра testприблизно так

test(some:_*)

І це повинно працювати так, як ви очікуєте.

Якщо вам цікаво, що :_*робить це чарівне , зверніться до цього питання .


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.