Avatar
protocol Init { init() } protocol Proto { associatedtype JSON: Init } extension Proto { func hoge() -> JSON { return JSON() } } struct Hoge: Proto { struct JSON: Init, CustomStringConvertible { var description: String = "Hoge.JSON" } } print(Hoge().hoge()) // Hoge.JSON
7:54 AM
こうかな
7:55 AM
hoge()が挿入されて推論されるのかJSONが先にあるのか分からない (edited)