Seems like you\'d ALWAYS want this:
func (self *Widget) Do() {
}
instead of this
func (self Widget) Do() {
}
Seems like you'd ALWAYS want this:
No. The value receiver is more general. It can be used in all the places that a pointer receiver can; but a pointer receiver cannot be used in all the places that a value receiver can -- for example, if you have an rvalue expression of the type Widget; you can call value-receiver methods on it, but not pointer-receiver methods.