そのようなことを成し遂げることは可能かと思います。
私はこのような遊び場を持っています:
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
はどうなりますか?すべてのプロパティなどを実装するという要件を満たすためにesでメソッド
を呼び出すのとどういうわけか似ていますが、で同じことを達成する可能性はありません。super.
class
structs
Foo.testPrint(self)()
-問題は、セグメンテーション違反が原因で失敗することです(7.0 GMと7.1ベータの両方でテスト済み)