假期去了妹妹那一趟,这两天大鱼大肉伺候着,真的有点吃不消,再加上最近也没运动,去她那上称一看,一百四十多了,还好一米八的个,看起来还不是太臃肿,今天坐车真的累,不得不吐槽虎门站的秩序有点乱啊,管理秩序太混乱了,好歹还是回来了,脱了衣服,先出去干了六公里多,洗了澡,发现上个星期说总结一下运算符重载的,也没弄,干脆睡觉前,总结总结。
什么是运算符重载
如果了解c++的同学,一定对这个概念不陌生。或者在java中我们对重载并不陌生,可能存在多个重名函数,只是方法的参数不同而已,而加上运算符,就仅仅只争对我们的运算符了。回顾一下平时用到的运算符大多有以下这些:
算术运算符
关系运算符
赋值运算符
上面是我们常运的一些运算符,当然还有其他的一元运算符,或者逻辑运输符,就不一一贴出来了。下面还是用例子,详细说明运算符重载。
我们就以我们常用的+=运输符聊起,任意举例,原理都差不多,我们常用的list集合,装入数据的时候通常只能用add()方法,我们能否使用+=运算符重载完成了,还无疑问,当然是可以的,
inline operator fun <T>MutableList<in T>.plusAssign(e:T){
this.add(e)
}
fun main(args: Array<String>) {
println("Hello World!")
val list = mutableListOf<String>()
list += "aa"
list += "bb"
}
总结
总体来说操作使用运算符重载还是比较简单,使用operator关键字,我们就可以随便操作。只是概念的问题,掌握了对于我们写出优雅的代码还是有很大帮助的。
网友评论