The biggest difference is in rust you have to handle the error case, but in go you can accidentally ignore it.
Nope. Go errors on dead variables, not on dead stores.
And because idiomatic go tends to reassign errors to the same variable if you have multiple error-returning functions in the same scope any one of them being checked will make the compiler happy.
You also do not have to assign the error at all, you can just ignore the entire thing.
Rust might force you to access a value. Big. Fucking. Deal.