Avatar
class Manul {} class Mike {} protocol NekoCargoBase { associatedtype InCargoCat } class NekoCargo<NekoType> {} extension NekoCargo: NekoCargoBase { typealias InCargoCat = NekoType } extension NekoCargo where InCargoCat == Manul { func meou() -> String { return "マヌルネコだよ!にゃーん" } } extension NekoCargo where InCargoCat == Mike { func meou() -> String { return "ミケネコだよ!にゃーん" } } let cargo: NekoCargo<Manul> = .init() print(cargo.meou()) なんかさっと思いついたものですが自信がない・・・ (edited)
1:26 AM
あ、でもfuncのところでかけないのは同じか