Kotlin 运算符重载

文章目录

运算符函数

我们平时使用的+-==[]等运算符其实是以函数(成员函数或扩展函数)的形式实现的。对应的符号有对应的函数名,并且需要以operator标记。

复制代码
operator fun 函数名()[: 返回值类型] [函数体]

运算符函数重载

我们可以将各种运算符重载为我们想要的操作。

例如,我们发现IntString并不能相加:

kt 复制代码
fun main() {
    print("Hello K" + 2)
}

我们可以重载plus运算符函数:

kt 复制代码
operator fun Int.plus(other: String) = "$this$other"


fun main() {
    print("Hello K" + 2)
}
复制代码
Hello K2

更多运算符说明可查看文档Operator overloading(英文)或运算符重载(中文)

Note:在 IDEA 中,将一个函数标记为operator,此函数如果为扩展函数,在写出接收者类型.之后就会提示可以重载的运算符名称,并且在后方会有该符号;如果为成员函数,则是在打出字母后会提示包含该字母的运算符及其符号。

相关推荐
雨白6 小时前
深入理解 Kotlin 协程 (四):大道至简,于微末的挂起恢复中衍化万物
kotlin
jinanwuhuaguo15 小时前
OpenClaw 2026年4月升级大系深度解读剖析:从“架构重塑”到“信任内建”的范式跃迁
android·开发语言·人工智能·架构·kotlin·openclaw
我命由我1234517 小时前
Android Jetpack Compose - SearchBar(搜索栏)、Tab(标签页)、时间选择器、TooltipBox(工具提示)
android·java·java-ee·kotlin·android studio·android jetpack·android-studio
Lsk_Smion17 小时前
Hot100(开刷) 之 长度最小的数组--删除倒数第N个链表--层序遍历
java·数据结构·算法·kotlin
我命由我1234518 小时前
Android Jetpack Compose - 组件分类:布局组件、交互组件、文本组件
android·java·java-ee·kotlin·android studio·android jetpack·android-studio
Kapaseker20 小时前
让你的 App 成为 AI 的一环
android·kotlin
千码君20162 天前
kotlin:Jetpack Compose 给APP添加声音(点击音效/背景音乐)
android·开发语言·kotlin·音效·jetpack compose
Kapaseker2 天前
lazy 与 lateinit 到底有什么区别?
android·kotlin
雨白2 天前
深入理解 Kotlin 协程 (三):返璞归真,探寻协程基础设施的底层基石
kotlin
call me by ur name3 天前
ERNIE 5.0 Technical Report论文解读
android·开发语言·人工智能·机器学习·ai·kotlin