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