Mi chiedo se sia possibile ottenere una cosa del genere.
Ho un parco giochi come questo:Chiamare l'implementazione predefinita del protocollo dal metodo normale
protocol Foo {
func testPrint()
}
extension Foo {
func testPrint() {
print("Protocol extension call")
}
}
struct Bar: Foo {
func testPrint() {
// Calling self or super go call default implementation
self.testPrint()
print("Call from struct")
}
}
let sth = Bar()
sth.testPrint()
posso fornire un'implementazione di default in extension
ma cosa succede se Bar
ha bisogno di tutto ciò che è in implementazione di default, più cose aggiuntive?
È in qualche modo simile a chiamare i metodi super.
in class
per soddisfare i requisiti di implementazione di ogni proprietà ecc. Ma non vedo alcuna possibilità di ottenere lo stesso con structs
.
vorrei usare 'Foo.testPrint (auto)()' - il problema è che non riesce a causa di una segmentazione guasto (testato su 7.0 GM e 7.1 beta) – Antonio
Questo è uno strano costrutto che hai presentato – cojoj
Ogni metodo di istanza è un metodo alesato statico che prende un'istanza come primo parametro – Antonio