Avatar
@swiftbot protocol AnimalProtocol {} extension AnimalProtocol { init(_with obj: Self) { self = obj } mutating func replace(with obj: Self) { self = obj } } class AnimalBase : AnimalProtocol { convenience init(with obj: AnimalBase) { self.init(_with: obj) } init() {} } class Cat: AnimalBase {} class Dog: AnimalBase {} var cat: Cat = Cat() print(type(of: cat)) cat.replace(with: Cat(with: Dog())) print(type(of: cat))
🛠 1