Je voudrais être capable de sous-classer Double avec quelques types personnalisés dans mon code swift afin de pouvoir faire de l'introspection et de la surcharge de l'opérateur plus tard.Sous-classe Swift Double/Surcharge de l'opérateur typealias
C'est sémantiquement ce que je veux être en mesure d'écrire:
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
Sentez-vous comme ce que je suis en train de faire devrait être que Swift est posible un langage strictement typé.
J'ai également examiné les typealias, mais vous ne pouvez pas surcharger l'opérateur avec ceux-ci. J'ai également regardé le protocole FloatingPoint mais ne semble pas m'aider.
'Double' est un struct et il ne peut pas être prolongé. – rmaddy
@rmaddy malheureusement pas. Je me demandais s'il y avait une approche différente. Peut-être des protocoles? – freebie