为什么不Kotlin数组<T>实现Iterable <T>

为什么KotlinArray<T>类不能实现Iterable<T>

快速浏览一下文档,发现它也有一个iterator()方法。

Kotlin旨在与Java完全互操作。 Array<X>在运行时和从Java的角度来看都是X[] 。 Java数组不能实现Iterable ,所以Kotlin数组(实际上是相同的)不如此。

我们可以通过创建一个与Java数组无关的独立类使我们的数组实现Iterable 。 但是,为了保持与Java的兼容性,我们必须执行从这种类型到Java数组的隐式转换。 隐式转换通常不是完美的方法,因为性能开销和对象标识语义不明确。 在这里,他们也只能解决一半的问题,因为在从Java调用Kotlin代码时,仍然必须手动“打包”数组。 这就是为什么这样的解决方案不被认为是可行的。