4 ms·
Checking for nil receivers is rare and hardly idiomatic. I think newcomers are exposed to this behaviour now. For instance, it is step 12 in the tour of Go: h
by papaf 6y ago
Checking for nil receivers is rare and hardly idiomatic.
I think newcomers are exposed to this behaviour now. For instance, it is step 12 in the tour of Go:
https://tour.golang.org/methods/12 https://tour.golang.org/methods/12
I learnt Go before the tour was available and learnt a lot from going through the tour later on.
- Cthulhu_ 6y agoOh wow, I hadn't seen that one yet. Gross, I don't want to have to check for nil receivers everywhere. I hope that's a wart that gets fixed. In Java land at some point we were taught to never use null anywhere, instead use the null object pattern. And in Go I'd like to extend that, never call a method on a nil receiver if you can avoid it. I think it should be up to the caller to do the nil check, IF the receiver can ever be nil.
- masklinn 6y ago> Oh wow, I hadn't seen that one yet. Gross, I don't want to have to check for nil receivers everywhere. I hope that's a wart that gets fixed. Hahaha oh you sweet summer child. It's considered a feature. And since typed nils will never get fixed despite being an actual wart (though the FAQ tells you you're holding it wrong you idiot: https://golang.org/doc/faq#nil_error https://golang.org/doc/faq#nil_error) there's no chance nil receivers will get removed from the language.
- spinny 6y agothis is probably a consequence of the language design. you also end up with things like this: https://play.golang.org/p/wgaLGOqFDZ9 https://play.golang.org/p/wgaLGOqFDZ9