Если ответ на мой вопрос уже есть здесь, пожалуйста, дайте ссылку... Я посмотрел.
Я работаю над некоторыми учебниками, и мне показалось немного странным, что этот код:
val my_set = Set("one","two","three")
println("First Value:" + my_set.toArray(0))
при запуске из командной строки выдавало такую ошибку:
$ scala settoarray.scala
/Users/rwheadon/devStuff/scala_sandbox/so_settoarray.scala:2: error: type mismatch;
found : Int(0)
required: ClassManifest[?]
println("First Value:" + my_set.toArray(0))
^
one error found
Я гуглил и искал в SO какое-то направление по обеспечению требования ClassManifest [?], но не смог заставить что-либо работать встроенно.
Из любопытства я попытался сделать то же самое простое toArray() в val и успешно вытащил связанный массив:
Код:
val my_set = Set("one","two","three")
val my_arry = my_set.toArray
println("First Value:" + my_arry(0))
запустить из консоли:
$ scala so_settoarray.scala
First Value:one
Мне интересно, нужно ли мне что-то добавить при попытке просто выполнить быстрое встроенное преобразование, такое как my_set toArray(0) для быстрого вывода первого элемента? Если я должен установить результат переменной, я могу легко принять это, но я предполагаю, что здесь я упустил какой-то небольшой момент, чтобы заставить работать встроенные приведения массива.
(... Scala это магия, верно?)