Avatar
Codableなclassのプロパティに初期値付きletを使うとDecoder.decodeで読むデータにそのプロパティに対応するものがあってもなくても初期値が入る(例外も出ない)、という挙動を見つけたのですが、この挙動ってどうなんでしょうか 🤔
10:05 PM
10:07 PM
import Foundation class Hoge: Codable { let fuga = "default value" private(set) var privateSet = "default value" } let decoder = JSONDecoder() decoder.decode(Hoge.self, from: "{\"fuga\": \"json value\", \"privateSet\": \"json value\"}".data(using: .utf8)!)
10:10 PM
とりあえずprivate(set) varを使えば想定する動きをすることがわかったのでそちらを使っているのですが、初期値なしletは正常に動作するので、そちらと混ぜるとコードがデコボコして見栄えがよろしくないことになってしまってさらに 🤔 しています