万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

  • ・資産運用おすすめ
    10万円は1000円くらい利益
    資産運用ブログ アセマネ
    • ・寄付お願いします
      YENTEN:YYzNPzdsZWqr5THWAdMrKDj7GT8ietDc2W
      BitZenny:ZfpUbVya8MWQkjjGJMjA7P9pPkqaLnwPWH
      c0ban:8KG95GXdEquNpPW8xJAJf7nn5kbimQ5wj1
      Skycoin:KMqcn7x8REwwzMHPi9fV9fbNwdofYAWKRo

    Hashableでidでユニークにならない時

    public class Hoge: Codable { public var id: Int public var name: String // これ追加 let creationDate: Date

    public enum CodingKeys: String, CodingKey, CaseIterable {
        case id
    }
    
    // これ追加
    required public init(from decoder: Decoder) throws {
        let container = try decoder.container(keyedBy: CodingKeys.self)
        id = try container.decode(Int.self, forKey: .id)
        name = try container.decode(String?.self, forKey: .name)
        // ここ注意
        creationDate = try container.decode(Date.self, forKey: .creationDate)
    }
    

    }

    String?.selfができる

    extension Hoge: Hashable {
        public static func == (lhs: Hoge, rhs: Hoge) -> Bool {
            return lhs.id == rhs.id && lhs.creationDate == rhs.creationDate
        }
    
        public func hash(into hasher: inout Hasher) {
            hasher.combine(id)
            hasher.combine(creationDate)
        }
    }