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

Kotlin语法疑问:MyContext扩展函数req()定义解析

关于Kotlin扩展函数的解惑

嘿,我来帮你把这个Kotlin语法的困惑掰明白!

首先,你看到的fun Foo.bar() = (...)是Kotlin里非常实用的扩展函数语法——简单来说,它允许你在不修改原有类(这里的Foo)源码的前提下,给这个类“凭空”添加新的成员函数,不管这个类是Kotlin写的还是Java写的都适用。

回到你的具体场景:

  • MyContext是Kotlin数据类,本身没有req()函数
  • LaunchRequest是Java类

如果你的代码是类似这样的:

fun MyContext.req(): LaunchRequest = this.request

那你的判断完全正确!这就是在给MyContext类定义一个名为req()的扩展函数,它的作用就是返回当前MyContext实例中那个名为request、类型为LaunchRequest的变量。

使用的时候也和普通成员函数一样方便,比如你有一个MyContext的实例:

val myCtx = MyContext(request = LaunchRequest(...))
val myRequest = myCtx.req() // 直接调用扩展函数,拿到LaunchRequest对象

扩展函数的好处就是能让代码更具可读性,还能避免写很多工具类的静态方法,把相关功能直接“挂靠”到对应的类上,用起来顺手多了~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 04:16:28