Мне интересно, можно ли достичь такой цели.
У меня есть такая игровая площадка:
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
.