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
java - Kotlin - 为非数据类生成 toString()
eclipse - 无法在 Eclipse 中运行 Kotlin 应用程序
kotlin - 0xFF0000FF 整数文字不符合预期的类型 kotlin.Int
kotlin - 协程 : runBlocking vs coroutineScope
android - Kotlin 惰性属性和值重置 : a resettable lazy dele
java - 如何使用 Maven 编译 Java+Kotlin 项目?