Zastanawiam się, czy da się coś takiego osiągnąć.
Mam taki plac zabaw:
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()
Mogę zapewnić domyślną implementację w, extension
ale co zrobić, jeśli Bar
potrzebuję wszystkiego, co jest w domyślnej implementacji oraz dodatkowych rzeczy?
Jest to trochę podobne do wywoływania super.
metod w class
es w celu spełnienia wymagań implementacji każdej właściwości itp., Ale nie widzę możliwości osiągnięcia tego samego z structs
.
Foo.testPrint(self)()
- problem polega na tym, że nie działa z powodu błędu segmentacji (testowane zarówno na 7.0 GM, jak i 7.1 beta)