Kotlin操作符重载详解教程
Kotlin 的操作符重载功能,真的是个挺实用的语法糖。用几个关键词说就是:语义清晰、扩展性强、还能让代码看起来简洁不少。比如你写个plus
函数,就能直接用+
来操作对象,感觉是不是挺酷?尤其是你需要Point
这种自定义类时,重载一下操作符,代码立马优雅多。
算术运算符那块挺直观的,定义方法名对上了,比如plus
、times
啥的,就能把对象操作搞得跟基础类型一样。像下面这个例子:
operator fun plus(other: Point) = Point(x + other.x, y + other.y)
直接支持p1 + p2
,是不是舒服多?而且还可以支持p1 + 3
这种不同类型的运算。灵活性拉满。
扩展函数也是亮点。比如你没法直接改某个类,但又想加点操作符能力,嗯,加个扩展函数就好了。像下面这样:
operator fun Point.times(value: Int) = Point(x * value, y * value)
是不是就挺方便?你再也不用写一堆point.multiplyBy(value)
这种罗里吧嗦的东西了。
赋值操作符这块也别错过。你可以定义plusAssign
来支持+=
操作,看起来更贴近日常代码习惯:
operator fun plusAssign(b: Point) {
x += b.x
y += b.y
}
像坐标、偏移量这些,简直不要太顺手。
不过要提醒一句,操作符重载虽然香,但也别滥用。命名一定要跟语义对得上,不然同事看你代码时分分钟崩溃。嗯,如果你是刚上手 Kotlin,这篇文章还蛮值得一读的。
96.49KB
文件大小:
评论区