重构声明和Map

也许最好的方法转换Map的方法是这样的:

for ((key, value) in map) {
    // do something with the key and the value
}

为了实现这个,我们需要

  • 通过iterator()函数将Map展现为一个序列值的集合
  • 通过component1()和component2()函数来展现每个元素的键值对

标准库提供这样的扩展:

operator fun <K, V> Map<K, V>.iterator(): Iterator<Map.Entry<K, V>> = entrySet().iterator()
operator fun <K, V> Map.Entry<K, V>.component1() = getKey()
operator fun <K, V> Map.Entry<K, V>.component2() = getValue()

因此你可以自由地使用重构声明在含有Map的for循环中(还有数据类集合实例等)。

results matching ""

    No results matching ""