*コメント欄にてloveeさんから補足を頂いているのでご覧ください!
実行コード
https://iswift.org/playground?BJSCvA&v=3
struct User {
let id: Int
}
struct UserFactory {
static func make(id: Int) -> User {
return User.init(id: id)
}
}
extension User {
init() {
self = UserFactory.make(id: 999)
}
}
let user1 = User(id: 100)
let user2 = UserFactory.make(id: 101)
let user3 = User()
print(user1.id)
print(user2.id)
print(user3.id)
self = instance
で、instanceを返す事ができる。出来ないと思ってたわ…。