小编SMM*_*MMH的帖子

尽管 Kotlin 的“Map”不是“Iterable”,但它如何以及为什么是可迭代的?

与 Java 中一样,任何对象都Iterable可以在增强的 for 循环中使用。我认为 Kotlin 也同样如此,直到我发现事实kotlin.collections.Map并非如此Iterable

来自标准库源代码:

public interface Map<K, out V> {
    // ....
Run Code Online (Sandbox Code Playgroud)

如果不是,那么这样的事情怎么可能?:

val map: Map<String, Int> = HashMap()
// ...
for ((s, i) in map) {
    println(s)
    println(i)
    // works perfectly
}
Run Code Online (Sandbox Code Playgroud)

最后,是否可以制作支持此语法的自定义类?如果是这样,怎么办?

loops iterable standard-library kotlin

4
推荐指数
1
解决办法
691
查看次数

标签 统计

iterable ×1

kotlin ×1

loops ×1

standard-library ×1