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

Kotlin中带类名前缀的函数声明Parent.createWork是什么含义?

Kotlin Parent.createWork 语法解答

语法定义

你看到的带点的函数声明是Kotlin的扩展函数(Extension Function),是Kotlin原生提供的语法特性,作用是不需要修改原有类/接口的源码,就能给指定类型新增可调用的函数。

核心特性说明

  • 声明时,点左侧的类型叫做接收者类型,表示这个扩展函数是给哪个类型新增的能力,你示例中的Parent就是接收者类型
  • 扩展函数不会真的修改原有类型的内部结构,所以你在Parent接口的定义里找不到createWork是完全正常的,它本质是语法糖封装的静态工具函数,只是调用写法和普通成员函数一致

示例代码的特殊逻辑

你贴的代码里的扩展函数定义在Children类内部,属于成员扩展函数,同时持有两个隐式接收者:

  • 扩展接收者:即Parent类型的实例,也就是调用createWork的对象,函数内部可以直接访问该实例的所有公开成员
  • 分发接收者:即当前Children类的实例,函数内部可以直接访问Children的所有成员(包括私有成员)

代码里create方法直接调用createWork没有加前缀,是因为Children本身实现了Parent接口,当前实例同时符合扩展接收者的类型要求,所以可以省略调用前缀。

另外你代码里的两个Parent.createWork是重载关系,双参数版本拼接参数后调用单参数版本,最终返回一个函数类型实例,接收MyWork参数并修改它的name属性。

学习方向

直接搜索「Kotlin 扩展函数」就能找到对应学习资料,延伸学习可以覆盖扩展属性、带接收者的函数字面量、Kotlin DSL实现等知识点,这类写法在Kotlin生态的协程、Gradle Kotlin DSL、Spring Kotlin API等场景中应用非常普遍。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 05:54:02