3 ms·
> Yes, it is annoying to do a lot of `check if err is nil`, but at the same time, exception handling is something that can be esoteric People keep saying this,
by stouset 10y ago
> Yes, it is annoying to do a lot of `check if err is nil`, but at the same time, exception handling is something that can be esoteric
People keep saying this, but the alternative doesn't have to be exceptions.
Rust strikes a great balance here. There's no nil, you must handle the Err case of a Result enum, or the None case of an Option enum (this is much nicer than go; in go after `val, err := failingThing()`, it's entirely possible to accidentally use `val` as a meaningful value, which is strictly impossible in Rust), and you can use functions like `map` and `and_then` on these types which has the benefits of explicit error handling without the absurd loss of readability caused by dozens of identical error handling clauses.
> I also feel like there has been a lot of emphasis put on keeping the APIs consistent
This isn't something special about go. This is a minimum requirement for a language nowadays. Rust, Ruby, Python, Swift, and others all do this.