6 ms·
yeah, is there a way to deserialize using (val, err) instead of *val when the field is optional?
by wrcwill 3y ago
yeah, is there a way to deserialize using (val, err) instead of *val when the field is optional?
- klabb3 3y agoHmm, are we talking json parsing? Yes, the field would take the zero value. If you need to differentiate between the zero-value (eg empty string, 0 for numbers) you’d typically use a pointer only for that purpose. That kinda sucks but there are some good arguments for zero-defaults too. The unmarshal functions take a reference but they don’t need to be declared as (heap-based) pointers. You can pass a `&val` directly. It needs a reference passed in to determine the type.
- wrcwill 3y agoyeah i meant if each field could be a tuple of (val, bool) or (val, err) to get around the pointer issue
- klabb3 3y agoThere are no tuples in Go. Very unfortunate. Tuples, enums and pattern matching is sooo good in Rust. I really miss it in Go.
- deleted 3y ago[deleted]
- throw-the-towel 3y agoJust for curiosity's sake, what good arguments for zero-defaults exist?