Hacker News new | ask | show | jobs
by glenjamin 844 days ago
> Is this a real problem? If there's a function signature that accepts `Operation`, the caller must explicitly cast the `int` to `Operation`. At that point, it's the caller's own fault.

You would think that, but that isn't always the case: https://play.golang.com/p/Ze3pfNEVTVs

It's very easy to create an enum value that isn't actually in the defined range

1 comments

Can you explain the thought process of a developer when they write 'performOperation(2)'? What do they believe '2' signifies in this context? I struggle to believe that this could occur by accident.
You struggle to imagine a programmer passing a value of the wrong type to a function?
Or passing a wrong value and the compiler allows it because the programmer trusted the compiler to "always do the right thing".