我在这里关注 kotlin 重载教程,但无法理解此示例:
fun main(args: Array<String>) {
val p1 = Point(3, -8)
val p2 = Point(2, 9)
var sum = Point()
sum = p1 + p2
println("sum = (${sum.x}, ${sum.y})")
}
class Point(val x: Int = 0, val y: Int = 10) {
// overloading plus function
operator fun plus(p: Point) : Point {
return Point(x + p.x, y + p.y)
}
}
运行程序时,输出将是:
sum = (5, 1)
具体来说,返回线:
return Point(x + p.x, y + p.y)
这条线是如何工作的?为什么会这样x + p.x
——这些价值观从何而来?