【发布时间】:2017-03-04 16:08:54
【问题描述】:
(注意:下面的 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 是否支持某种鸭子类型,或者这是 Kotlin 语言中的一种特殊情况,仅适用于 JDK 中的某些类?
我查看了the Kotlin documentation on interfaces 并搜索了一下,但找不到任何似乎可以解释这一点的东西。
【问题讨论】: