我在类中有一个函数需要获取对象的值然后返回不同的值。我想做一些像苹果做CLLocation距离的事情。你可以在哪里打电话
point1.distance(point2)
其中发送point1和point2的值。
我知道我可以创建一个函数并在函数中发送参数:
getDistance(point1: Location, point2: Location)
是否有任何方法可以使用更优雅的功能以及如何调用它,就像Apple使用它们的功能一样。
答案 0 :(得分:1)
你可以这样做:
class Location {
private var _position: Double!
var position: Double {
return _position
}
init(position: Double) {
self._position = position
}
func distance (reference: Location) -> Double {
let point1 = self.position //or whatever leads to your value
let point2 = reference.position
//do what ever you have to do with both points e.g.
let result = point1 - point2
return result
}
}
let point1 = Location(position: 50.0)
let point2 = Location(position: 32.0)
现在你可以做你想要的事情:
point1.distance(reference: point2)
// returns 18