You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin:使用扩展函数扩展接口为何无法生效?

问题原因分析

你的代码之所以没打印出"Hello",核心原因是printInterface函数仅仅接收了MyInterface.() -> Unit类型的lambda参数,但没有在函数体内调用这个lambda。

具体细节:

  • 你传递给printInterface的{ printExtension() }是一段针对MyInterface的扩展逻辑,但这段逻辑必须被主动触发才会执行。
  • 当前printInterface是空实现,没有调用传入的content参数,导致lambda里的printExtension()代码完全没机会运行。

修复方式很直接,在printInterface内部调用传入的lambda即可:

fun printInterface(content: MyInterface.() -> Unit) {
    // 创建MyInterface的匿名实例,调用传入的lambda逻辑
    object : MyInterface {}.content()
}

修改后运行代码,就能正常打印出"Hello"了。

内容的提问来源于stack exchange,提问作者steeveKA1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 09:01:07