HashMap如何在Kotlin中实现MutableMap接口?

(注意:下面的一个Kotlin Koans有一个潜在的扰流器。)

给定一个函数如下所示的高阶函数:

fun <K, V> buildMap(build: MutableMap<K, V>.() -> Unit): Map<K, V> { // How does java.util.HashMap satisfy the MutableMap interface? // Does Kotlin support ducktyping? val map = HashMap<K, V>() map.build() return map } 

java.util.HashMap如何满足build目标所针对的MutableMap接口? Kotlin是否支持某种类型的ducktyping,或者这是Kotlin语言中的一个特殊情况,只是作为JDK的一部分?

我看了接口上的Kotlin文档并搜索了一下,但找不到任何似乎可以解释的内容。

“Kotlin in Action”书籍中介绍了关于ArrayListHashMap的以下几点:

Kotlin将它们视为分别从Kotlin的MutableListMutableSet接口继承而来。

所以基本上是的,正如你所建议的那样,在Kotlin编译器中以某种方式实现这些集合是一个特例。 不幸的是,这是他们提供的所有细节,所以如果你想知道更多,你可能不得不深入到编译器的源头。

我想主要的是,这不是一个你可以使用自己的语言功能。