In the cases where this is important, you can use pointers. Go allows you to make pointers to primitives as well (making the zero value nil) so you can explicitly define those edge cases.
You’d be surprised how infrequently that’s actually a concern though.
You’d be surprised how infrequently that’s actually a concern though.