Avatar
omochimetaru 8/23/2021 7:04 AM
protocolの extension で書く init の中だと self.initSelf.init の両方がほぼ同じ意味で書けるけど、意味が違うことを今日知った (edited)
7:06 AM
extension CodableFromLosslessStringConvertible { public init(from decoder: Decoder) throws { let c = try decoder.singleValueContainer() let string = try c.decode(String.self) // ここが self.init だと怒られる guard let value = Self.init(string) else { throw DecodingError.dataCorruptedError( in: c, debugDescription: "invalid string: \(string)" ) } self = value } } (edited)