为什么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.这就是为什么这种解决方案被认为不可行的原因.

Kotlin相关问答推荐

为什么onEach不是挂起函数,而Collect是?

为什么Kotlin有次构造函数和init块?

为什么在jacksonObjectMapper上将DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES设置为false无效?

Kotlin 列表扩展功能

如何在 Kotlin 中不受约束?

如何从 kotlin 函数中 Select 正确的枚举值

`this@classname` 在 Kotlin 中是什么意思?

如何将 kotlin 集合作为 varagrs 传递?

Kotlin 顶级函数与对象函数

Android Room - error: Cannot figure out how to save this field into database

如何在Spring Boot应用程序上启用承载身份验证?

如何在使用 Gradle 的 AppEngine 项目中使用 Kotlin

如何在特定条件下清除jetpack数据存储数据

任何处理器都无法识别以下选项:'[kapt.kotlin.generated, room.incremental]'

Kotlin中保留的关键字是什么?

Dagger +Kotlin 不注入

从 java 活动 *.java 启动 kotlin 活动 *.kt?

Kotlin中对象和数据类的区别是什么?

如何在 Kotlin 中按字母顺序对字符串进行排序

如何在 kotlin 中创建重复对象数组?