4 ms·
I'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 exhaustivene
by fredrikholm 2y ago
I'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.