types - 为什么 Kotlin Array 不实现 Iterable

Array<T> 为什么不呢?类(class) Kotlin实现 Iterable<T> ?

快速浏览documentation显示它已经有一个 iterator() 方法也是。

最佳答案

Kotlin 旨在与 Java 完全互操作。 Array<X>X[]无论是在运行时还是从 Java 的角度来看。 Java 数组不实现 Iterable ,所以 Kotlin 数组(实际上是相同的)也不一样。

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

关于types - 为什么 Kotlin Array<T> 不实现 Iterable<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35938906/

相关文章:

android - ArrayAdapter 使用 Kotlin android

kotlin - 什么是 Kotlin 模块?

java - Kotlin - 为非数据类生成 toString()

eclipse - 无法在 Eclipse 中运行 Kotlin 应用程序

kotlin - 0xFF0000FF 整数文字不符合预期的类型 kotlin.Int

kotlin - 协程 : runBlocking vs coroutineScope

android - Kotlin 惰性属性和值重置 : a resettable lazy dele

java - 如何使用 Maven 编译 Java+Kotlin 项目?

kotlin - 让 Kotlin 在将灵活/平台类型分配给非空类型时发出警告?

arrays - Kotlin 中的二维数组