如果我的问题的答案已经在这里,请链接它......我确实看过。
我正在学习一些教程,这段代码让我有点奇怪:
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
我用谷歌搜索并搜索了一些关于提供 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很神奇,对吧?)