0
我希望能够在我的swift代码中使用一些自定义类型来继承Double类,以便稍后可以进行一些自省和运算符重载。Subclassing Swift Double/Operator Overload typealias
这是语义上我希望能够写:
class Frequency: Double {}
class Period: Double {
init(_ frequency: Frequency) {
let period: Double = 1/frequency
self.init(period)
}
}
let a = Double(1)
print(type(of: a)) // Double
let b = Frequency(2)
print(type(of: b)) // Frequency
let c = Period(a)
print(type(of: c)) // Period == 1
let d = Period(b)
print(type(of: d)) // Period == 0.5
感觉像什么,我要做的应该是更多钞票作为斯威夫特是一个严格的类型语言。
我也看了一下typealiases,但是你不能用那些操作符重载。也看了一下FloatingPoint协议,但似乎没有帮助我。
'Double'是一个结构,它不能扩展。 – rmaddy
@rmaddy不幸的不是。我想知道是否有不同的方法。也许协议? – freebie