3 ms·
Agreed 100%. I have my very real pet peeves with Golang -- lack of sum types and thus no exhaustive pattern matching is the top one -- but I can't argue with r
by pdimitar 2y ago
Agreed 100%.
I have my very real pet peeves with Golang -- lack of sum types and thus no exhaustive pattern matching is the top one -- but I can't argue with results. Every time I wanted to whip up something quickly, Golang has gotten the job done and then some.
- fredrikholm 2y agoI've gotten far with type switching on an interface that amounts to a single function that does nothing. Unfortunately it does nothing in terms of exhaustiveness, but it effectively gives you sum types which IME are so, so much easier to work with than state pattern or other inject-an-object-abstractions. Not having to design an API (that later leaks) is rewarding enough. It's strangely efficient as well. I've experimented with implementing sum types via tagged C-style unions and at every (ad hoc, micro) benchmark I've tried them against, type switching on an interface comes out on top.
- pdimitar 2y agoCan you point me at an article that demonstrates Golang type switching? Does not ring bell at the moment for me so I'd love to see the code.
- assbuttbuttass 2y agohttps://go.dev/tour/methods/16 https://go.dev/tour/methods/16
- pdimitar 2y agoThanks, for some reason I never stumbled upon this. Very valuable, I am bookmarking it.