swift で protocol 実装関数がたしかに protocol を実装できているかを確認したい
swift を開発していて、 Java のインターフェイスと同じノリで override を protocol の実装関数に付与しようとしました。
protocol HogeDelegate {
func hoge()
}
class HogeController: HogeDelegate {
override func hoge() {
}
}
しかしこれは、 Method does not override any method from its superclass
のエラーになります。
どうやら、 swift の override は class のメソッドに対して定義されるべきもので、 protocol の実装にあたっては付与してはいけなさそうだ、と思っています。しかし、これだと、例えばシグネチャーが複雑になってきたときに、確かにほしい実装を今行えているのだろうか、と心配になったりします。(とくに、 protocol がデフォルトを持っている場合)
質問:
- swift において、 protocol で定義される関数の実装を行っている場合に、それが確かに protocol の関数を実装できていることを、言語的に強制することはできますか?