Kotlin学习笔记之 操作符重载

     操作符方法对应表

表达式翻译为
+aa.unaryPlus()
-aa.unaryMinus()
!aa.not()
a++a.inc()
a--a.dec()
a + ba.plus(b)
a - ba.minus(b)
a * ba.times(b)
a / ba.div(b)
a % ba.rem(b)
a..ba.rangeTo(b)
a in bb.contains(a)
a !in b!b.contains(a)
a[i]a.get(i)
a[i, j]a.get(i, j)
a[i_1, ..., i_n]a.get(i_1, ..., i_n)
a[i] = ba.set(i, b)
a[i, j] = ba.set(i, j, b)
a[i_1, ..., i_n] = ba.set(i_1, ..., i_n, b)
a()a.invoke()
a(i)a.invoke(i)
a(i_1, ..., i_n)a.invoke(i_1, ..., i_n)
a += ba.plusAssign(b)
a -= ba.minusAssign(b)
a *= ba.timesAssign(b)
a /= ba.divAssign(b)
a %= ba.remAssign(b)
a == ba?.equals(b) ?: (b === null)
a != b!(a?.equals(b) ?: (b === null))
a > ba.compareTo(b) > 0
a < ba.divAssign(b)
a >= ba.compareTo(b) >= 0
a <= ba.compareTo(b) <= 0

针对以上表格中列出来的所有,我们均可以通过operator fun的方式修改

上面需要说明的是,一般的操作符重载我们不需要再过多的阐述,对于a == ba != b这两个操作符,直接看后面的翻译,我们摸不着头脑不知道要怎么重载。

这里要注意,要完全一致,包括上面的所有的操作符,复写的时候包括类型、返回值等要完全相同,才可以去使用前面的操作符。即上面的==复写,必须要Any?并且返回Boolean

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值