Earlier quoted context omitted.
I think the semantics of Go's error handling is pretty good, but the syntax could use work.
Something as simple as allowing the use of multi-result calls in if statements would make a huge difference. Being able to write "if err := blah(); err != nil { ... }" is great (although it does kind of hide the original call.)
This is common for things like map access. See an example here https://play.golang.org/p/P3k5tgFLd2