gpt4 book ai didi

java - HashMap在Kotlin中是如何实现MutableMap接口(interface)的?

转载 作者:搜寻专家 更新时间:2023-11-01 02:37:49 24 4
gpt4 key购买 nike

(注意:下面有一个 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 接口(interface)? Kotlin 是否支持某种 ducktyping,或者这是 Kotlin 语言中的一个特例,仅适用于属于 JDK 的某些类?

我看了the Kotlin documentation on interfaces并进行了一些搜索,但找不到任何似乎可以解释这一点的内容。

最佳答案

The Kotlin in Action 一书对 ArrayListHashMap 说了以下内容:

Kotlin sees them as if they inherited from the Kotlin’s MutableList and MutableSet interfaces, respectively.

所以基本上是的,正如您所建议的,这是在 Kotlin 编译器中以某种方式实现的这些集合的特例。不幸的是,这就是它们提供的所有详细信息,因此如果您想了解更多信息,您可能必须深入了解编译器的源代码。

我想主要的收获是这不是您可以自己使用的语言功能。

关于java - HashMap在Kotlin中是如何实现MutableMap接口(interface)的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42598134/

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