Reading about value receivers vs pointer receivers across the web and stackoverflow, I understand the basic rule to be: If you don't plan to modify the receiver, and the receiver is relatively small, there is no need for pointers.
Then, reading about implementing the error
interface (eg. https://blog.golang.org/error-handling-and-go), I see that examples of the Error()
function all use pointer receiver.
Yet, we are not modifying the receiver, and the struct is very small.
I feel like the code is much nicer without pointers (return &appError{}
vs return appError{}
).
Is there a reason why the examples are using pointers?