Not a hard question. It’s sum types! (Or enums, tagged unions, or whatever you want to call them).
You must log in or register to comment.
While you're at it, with sum types, you can replace this stupid nil with an optional type. Also, you can replace the stupid error handling with an either/result type. Then you can add a keyword to return early if it's left/err. Then you have Swift or Rust.
I do hate the way enums are in Go. It's just barely better than using a
string
orint
in most cases.