(注意:下面的 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
}
Run Code Online (Sandbox Code Playgroud)
java.util.HashMap 如何满足针对的MutableMap接口build?Kotlin 是否支持某种类型的鸭子类型,或者这是 Kotlin 语言中仅针对属于 JDK 的某些类的特殊情况?
我查看了有关接口的 Kotlin 文档并进行了一些搜索,但找不到任何似乎可以解释这一点的内容。
我在参考文献中没有找到任何解释,但是当我输入implIntelliJ IDEA时,我收到一个错误:

它似乎被视为一个保留词,但它是什么呢?我尝试过多种东西,impl但每次都会得到错误.
更新:它改名为expectKotlin 1.2之后.