Цікаво, чи можливо досягти такого?
У мене є такий дитячий майданчик:
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()
Я можу надати реалізацію за замовчуванням, extension
але що, якщо Bar
потрібно все, що є в реалізації за замовчуванням, а також додаткові речі?
Це якось схоже на виклик super.
методів в class
es для виконання вимоги щодо реалізації кожного властивості тощо, але я не бачу можливості досягти того самого за допомогою structs
.
Foo.testPrint(self)()
- проблема в тому, що він виходить з ладу через помилку сегментації (протестовано як на 7.0 GM, так і на 7.1 бета-версії)