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,此函数如果为扩展函数,在写出接收者类型.之后就会提示可以重载的运算符名称,并且在后方会有该符号;如果为成员函数,则是在打出字母后会提示包含该字母的运算符及其符号。

相关推荐
モンキー・D・小菜鸡儿2 小时前
Android14 新特性与适配指南
android·kotlin·安卓新特性
モンキー・D・小菜鸡儿5 小时前
Android15 新特性与适配指南
android·kotlin·安卓新特性
儿歌八万首5 小时前
Jetpack Compose 实战:实现手势缩放图片 (Zoomable Image) 组件
kotlin·android jetpack
モンキー・D・小菜鸡儿6 小时前
Android13 新特性与适配指南
gitee·kotlin·安卓新特性
天下无敌笨笨熊11 小时前
kotlin函数式编程
开发语言·数据库·kotlin
QING61812 小时前
Kotlin Flow 去重 (distinctUntilChanged) 详解
kotlin·android studio·android jetpack
QING61812 小时前
Kotlin Flow 节流 (Throttle) 详解
android·kotlin·android jetpack
Kapaseker13 小时前
Context 知多少,组件通联有门道
android·kotlin
儿歌八万首1 天前
Jetpack Compose 实战:打造高性能轮播图 (Carousel) 组件
android·前端·kotlin
QING6181 天前
Kotlin Flow 防抖(Debounce)详解
android·kotlin·android jetpack