gpt4 book ai didi

kotlin - 如何在 kotlin 中创建自定义迭代器并添加到现有类中?

转载 作者:行者123 更新时间:2023-12-05 03:18:44 28 4
gpt4 key购买 nike

你好,我正在尝试向 kotlin 包中的 Pair 类添加一个自定义迭代器,以便能够在 for 循环中使用该类的实例

让我们假设这是我希望能够做到的:

val pair: Pair<Int, String> = Pair(1, "sample data")
for (element in pair) {
println(element)
}

我知道有很多其他方法可以打印一对中的元素,但我特别希望能够在 for 循环中使用对,我需要添加带有 next() 和 hasNext() 方法实现的 iterator() 对象配对类

最佳答案

您可以通过为您的对象提供iterator() 运算符(作为成员函数或扩展函数)来做到这一点。使用扩展函数的示例:

fun main() {
val pair: Pair<Int, String> = Pair(1, "sample data")
for (element in pair) {
println(element)
}
}

operator fun <T> Pair<T, T>.iterator(): Iterator<T> = listOf(first, second).iterator()

但是,您需要注意,这种方式会部分丢失强类型。 element 只能是所有元素的公共(public)父类(super class)型,在大多数情况下只是Any?

您可以在官方文档中阅读更多相关信息:https://kotlinlang.org/docs/control-flow.html#for-loops

关于kotlin - 如何在 kotlin 中创建自定义迭代器并添加到现有类中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73640550/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com