Kotlin 函数1 - 运算符重载

Kotlin 函数1 - 运算符重载


运算符重载在 Kotlin 中的应用非常的广泛,它可以方便去赋予一些基本运算符以我们自己想要达到的效果,方便我们编程

1. 先看一个计算复数的例子:

  1. 复数与复数相加

要求:

  1. 定义一个复数的类;
  2. 让它实现复数的加法运算(实部与实部相加,虚部与虚部相加);
class Complex(var real: Double, var imaginary: Double) {

    operator fun plus(complex: Complex): Complex {
        return Complex(real + complex.real, imaginary + complex.imaginary)
    }

    override fun toString(): String {
        return "$real + ${imaginary}i"
    }
}
  1. operator 是重载运算符方法的关键字;
  2. plus+ 操作符的重载方法的方法名;
  3. 最后,重写了 toString() 方法,方便我们后面验证效果
  • 运行程序
val complex1 = Complex(2.0, 7.3) // 2 + 7.3i
val complex2 = Complex(5.0, 10.0) // 5 + 10i
println(complex1 + complex2) // 7.0 + 17.3i
  1. 复数与实数相加
  • 在上面例子中为 Complex 类再添加一个重载方法
operator fun plus(other: Double): Complex {
    return Complex(real + other, imaginary)
}
  • 运行程序
val doubleNum = 3.0
println(complex1 + doubleNum) // 5.0 + 7.3i
  1. 复数与实数相加,结果只取实部
operator fun plus(other: Double): Double {
    return real + other
}
  • 运行
val doubleNum = 3.0
println(complex1 + doubleNum) // 5.0

总结:

  1. fun 前面使用 operator 关键字修饰;
  2. 重载时,参数个数必须与被重载的方法参数个数保持一致;
  3. 参数类型和返回值类型可以是任意的;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • C++运算符重载-下篇 本章内容:1. 运算符重载的概述2. 重载算术运算符3. 重载按位运算符和二元逻辑运算符4...
    Haley_2013阅读 1,551评论 0 49
  • C++运算符重载-上篇 本章内容:1. 运算符重载的概述2. 重载算术运算符3. 重载按位运算符和二元逻辑运算符4...
    Haley_2013阅读 2,400评论 0 51
  • C++运算符重载的实质:运算符重载的实质就是函数重载或函数多态。运算符重载是一种形式的C++多态。目的在于让人能够...
    Nancy_Shi阅读 1,108评论 1 3
  • C++语言的一个很有意思的特性就是除了支持函数重载外还支持运算符重载,原因就是在C++看来运算符也算是一种函数。比...
    欧阳大哥2013阅读 2,794评论 0 8
  • 也许,每个人心里都有一个江湖梦。 一个人的时候,我喜欢听一些安静的古风歌。不知道有没有人和我一样呢? 欢迎补充~ ...
    An_暖阅读 1,057评论 7 4

友情链接更多精彩内容