我想通过单行按索引访问列表到数组元素。
这给了我一个错误:
Array(1,2,3)(2) // 3
List(1,2,3).toArray(2) // error
(List(1,2,3).toArray)(2) // error
// error: type mismatch;
// found : scala.this.Int(2)
// required: reflect.this.ClassTag[?]
但是,这有效:
val a = Array(1,2,3)
val b = List(1,2,3).toArray
println(a(2)) // 3
println(b(2)) // 3
为什么会这样,如何在不做额外val
的情况下制定解决方案?
斯卡拉菲德尔
类型检查器做出了错误的选择。试着给它一个提示。
println((List(1,2,3).toArray: Array[Int])(2))