你的位置:首页 > 软件开发 > 操作系统 > Kotlin操作符重载:把标准操作加入到任何类中(KAD 17)

Kotlin操作符重载:把标准操作加入到任何类中(KAD 17)

发布时间:2017-03-26 00:00:27
作者:Antonio Leiva时间:Mar 21, 2017原文链接:https://antonioleiva.com/operator-overload-kotlin/ 就像其他每种语言一样,在Kotlin中,已经预定义了一些操作符执行一定的操作。 最典型的是加(+) ...

Kotlin操作符重载:把标准操作加入到任何类中(KAD 17)

作者:Antonio Leiva

时间:Mar 21, 2017

原文链接:https://antonioleiva.com/operator-overload-kotlin/

Kotlin操作符重载:把标准操作加入到任何类中(KAD 17)

 

就像其他每种语言一样,在Kotlin中,已经预定义了一些操作符执行一定的操作。

 

最典型的是加(+),减(-),乘(*),除(/),而且还有很多。

 

类似Java这样的一些语言,这些操作符被限制在一些特定的数量类型上,且没有方法让其他类型数据使用这些操作符。

 

还有在像Scala这样的其他语言中,由于函数名称可接受任何符号,我们就可创造能用于任何数据类型操作符。

 

Kotlin的这种方案:有一些预定义的操作符,而我们能够为任意数据类型重载它们

 

Kotlin的操作符重载

 

如我们讨论的,Kotlin能够重载一些操作符,在我们的类中实现其相应的函数。这些函数前必须加上保留字operator

 

这些基本操作符如下:

 

一元操作符

 

+a

a.unaryPlus()

-a

a.unaryMinus()

!a

a.not()

a++

a.inc()

a–

a.dec()

 

二元操作符

 

a + b

a.plus(b)

a – b

a.minus(b)

a * b

a.times(b)

a / b

a.div(b)

a % b

a.mod(b)

a..b

a.rangeTo(b)

a in b

b.contains(a)

a !in b

!b.contains(a)

a += b

a.plusAssign(b)

a -= b

a.minusAssign(b)

a *= b

a.timesAssign(b)

a /= b

a.divAssign(b)

a %= b

a.modAssign(b)

 

数组类型操作符

 

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] = b

a.set(i, b)

a[i, j] = b

a.set(i, j, b)

a[i_1, …, i_n] = b

a.set(i_1, …, i_n, b)

 

等式(equals)操作符

 

a == b

a?.equals(b) ?: b === null

a != b

!(a?.equals(b) ?: b === null)

 

 

由于equals操作使用更复杂地转换做正确性检查,并且期望函数准确说明而不仅仅是为它的一个特殊名称,而稍有一点不同略有不同。

1 fun equals(other: Any?): Boolean

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:Kotlin操作符重载:把标准操作加入到任何类中(KAD 17)

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录