通过索引访问 list.toArray 的元素



我想通过单行按索引访问列表到数组元素。

这给了我一个错误:

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))