Avatar
protocol P { func hoge(_ a: Int) func hoge(_ a: String) } protocol IntOrString {} extension Int : IntOrString {} extension String : IntOrString {} struct S : P { func hoge<X>(_ a: X) { print("X") } } extension P { func hoge(_ a: Int) { print("default Int") } } let s = S() s.hoge(1) // default Int s.hoge("a") // X
10:08 AM
Generic実装でのプロトコルのオーバーロード一括コンフォームは、
10:08 AM
デフォルト実装よりは優先度が低いのね。