Hacker News new | past | comments | ask | show | jobs | submit login

Conceptually that makes sense, but having to explicitly check the type of the return value every time is just hideous.



Uhm, then don't code in Go?


You can ignore errors in Go by assigning them to _. You can't if your return value is sometimes an Error.


You could implement something like lvalue pattern matching, if you wanted to.

Assuming you construct tagged unions like so:

    Valid 123
    Error "Error message"
You could pattern match on the left side of an assignment like so:

    Valid foo = dosomething()
    use(foo)
Which would extract the wrapped value into 'foo' if the union's tag was 'Valid', or aborted/panicked/did something else somewhat sane if the value didn't match.


If my return value is an Exception, I handle it in a catch block.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: