有没有办法制作方法别名?
例如,我有一个用于计算圆形的类:面积,周长等。在数学区域中写为" A",圆周为" C"并且半径为" r"但是对于普通人和代码清晰度,使用全名进行此类计算显然更好。因此,我想要班级成员" C"和班级成员"周长"基本上做同样的事情。
显而易见的方法是将方法赋值给变量......但是调用这样的方法是不必要的复杂。这是代码:
class Circle: parentClass {
let π = M_PI
...
// here I try to "alias" a method
let C = circumference
func circumference() -> Double {
return 2 * self.radius * π
}
}
现在调用方法:
let instance = Circle()
// the line below actually calls instance.circumference
// but does not look clean enough to be useful
instance.C(instance)()
有更聪明的方法吗?
答案 0 :(得分:2)
我不确定这是否更优雅;但是,我确实发现它至少组织良好,最终是一个更好的API(使用属性与方法):
struct Circle {
let π = 3.14
var radius: Double
var circumference: Double { return self.π * diameter() }
init(radius: Double) {
self.radius = radius
}
func diameter() -> Double {
return self.radius * 2
}
}
extension Circle {
var C: Double { return self.circumference }
}
let circle = Circle(radius: 60.0)
let circumference = circle.C
println("The circumference is: \(circumference)")
//=> The circumference is: 376.8