为什么Kotlin
中的Array<T>
类不实现Iterable<T>
?
A quick look at the documentation reveals that it already has an iterator()
method too.
为什么Kotlin
中的Array<T>
类不实现Iterable<T>
?
A quick look at the documentation reveals that it already has an iterator()
method too.
Kotlin旨在与Java完全互操作.Array<X>
在运行时和从Java的Angular 来看都是X[]
.Java数组不实现Iterable
,所以Kotlin数组(实际上是相同的)也不实现.
我们could通过创建一个与Java数组无关的独立类,使数组实现Iterable
.然而,为了保持与Java的兼容性,我们必须执行从这种类型到Java数组的隐式转换.由于性能开销和对象标识语义不明确,隐式转换通常不是完美的方法.在这里,它们也只能解决一半的问题,因为在从Java调用Kotlin代码时,仍然需要手动"装箱"array.这就是为什么这种解决方案被认为不可行的原因.