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

相关推荐
hai_android12 小时前
不用 AIDL,手把手教你手写 Binder 代理类
android·kotlin
雨白15 小时前
Kotlin 泛型进阶:攻克型变与实化,直击痛点
kotlin
alexhilton19 小时前
架构测试为何需要双视图
android·kotlin·android jetpack
事圆则缓19 小时前
Jetpack Compose 快速上手
android·kotlin
事圆则缓20 小时前
MVC、MVP、MVVM、MVI 的区别与实现原理
android·kotlin·mvc
事圆则缓20 小时前
Android组件化指南
android·kotlin
事圆则缓1 天前
Jetpack Compose Effect 完全指南
android·kotlin
我命由我123452 天前
Android Jetpack Compose 开发问题:Unresolved reference ‘Icons‘.
android·java-ee·kotlin·android studio·android jetpack·android-studio·android runtime
坚果的博客2 天前
CPF-KMP-CMP:在鸿蒙上用 Kotlin 写跨平台应用
华为·kotlin·harmonyos
事圆则缓2 天前
Kotlin 高阶工程化与 Android 深入实践
android·开发语言·kotlin