美文网首页
kotlin:扩展函数和运算符重载

kotlin:扩展函数和运算符重载

作者: Yapple | 来源:发表于2020-05-09 18:17 被阅读0次

扩展函数:

概念:在不修改某个类的源码的前提下,为该类添加新的函数,无论该类是否为final类型。
语法结构

fun ClassName.methodName(param1: Int, param2: Int): Int {
    //相关逻辑
    return 0
}

tips:最好定义成顶层函数,方便全局使用。

运算符重载:

概念:同一运算符在不同的环境所表现的效果不同,如”+“在两个Int值之间表示两者的数值相加,在两个字符串之间表示,将字符串拼接,同时kotlin允许我们将任意两个类型的对象进行”+“运算,或者其他运算符操作。
语法结构:如下,其中operator 为运算符重载的关键字

class A {
    operator fun plus(a: A): A {
        //相关逻辑
    }
}

”a+b“对应的重载函数为a.plus(b)
”a-b“对应的重载函数为a.minus(b)
”a*b“对应的重载函数为a.times(b)
”a/b“对应的重载函数为a.div(b)
”a%b“对应的重载函数为a.rem(b)
”a++“对应的重载函数为a.inc()
”a--“对应的重载函数为a.dec()
”+a“对应的重载函数为a.unaryPlus()
”-a“对应的重载函数为a.unaryMinus()
”!a“对应的重载函数为a.not()
”a == b“对应的重载函数为a.equals(b)
”a > b“、”a < b“、”a >= b“、”a >= b“对应的重载函数为a.compareTo(b)
”a..b“对应的重载函数为a.rangeTo(b)
”a[b]“对应的重载函数为a.get(b)
”a[b] = c“对应的重载函数为a.set(b, c)
”a in b“对应的重载函数为b.contains(a)

扩展函数和运算符重载的合体:

operator fun ClassName.plus(param1: ClassName): ClassName {
    //相关逻辑
    return result
}

相关文章

  • Kotlin 函数用法入门

    本文内容: 函数与函数常量 扩展函数 命名参数与默认参数 运算符重载 递归与尾递归 定义函数 在 Kotlin 中...

  • Kotlin 函数1 - 运算符重载

    Kotlin 函数1 - 运算符重载 运算符重载在 Kotlin 中的应用非常的广泛,它可以方便去赋予一些基本运算...

  • kotlin:扩展函数和运算符重载

    扩展函数: 概念:在不修改某个类的源码的前提下,为该类添加新的函数,无论该类是否为final类型。语法结构: ti...

  • C++ 部分运算符重载

    可重载的运算符 不可重载的运算符和符号 重载运算符为类的成员函数 重载运算符为友元函数 重载赋值运算符 重载流插入...

  • Kotlin:扩展函数和运算符重载和infix函数

    前言 兄弟们好,经过前边三篇知识的学习及掌握,相信对于Kotlin代码已经比较熟悉了,相信我输出内容一定会帮助到各...

  • Kotlin之扩展函数和运算符重载

    1、扩展函数 扩展函数就是在不修改源码的情况下,向某个类中新增加函数。下面举个例子:我们想统计一个字符串中字母的数...

  • Kotlin-扩展函数和运算符重载

    1.扩展函数表示即使在不修改某个类源码的情况下,仍然可以打开这个类,向该类添加新的函数。在顶层文件定义如下这样一个...

  • Kotlin请开始你的表演——02运算符篇

    运算符 1、运算符重载 Kotlin支持标准的算数运算表达式,并且Kotlin为这些运算符都内建了对应的函数来表示...

  • Kotlin系列之听说这个函数的入参也是函数?

    整洁是kotlin语法的一大特性,它主要体现在扩展函数,中缀调用,运算符重载,约定,以及对lambda表达式的活用...

  • C++面向对象-运算符重载

    运算符重载 运算符重载又称为操作符重载,可以为运算符增加一些新的功能,全局函数和成员函数都支持运算符重载,我们通过...

网友评论

      本文标题:kotlin:扩展函数和运算符重载

      本文链接:https://www.haomeiwen.com/subject/geyknhtx.html