Существует ли причина, по которой Go стандартная библиотека предпочитает приемники указателей, даже если приемники значений будут работать?
Например, в go 1.14 io.multiwriter :
type multiWriter struct {
writers []Writer
}
func (t *multiWriter) Write(p []byte) (n int, err error) {
...
}
...
func MultiWriter(writers ...Writer) Writer {
...
return &multiWriter{allWriters}
}
Это сработало бы, даже если бы вместо &multiWriter{allWriters}
функция вернула multiWriter
значение, а func (t *multiWriter) Write
имел получатель значения.
Существует ли причина, по которой go стандарт библиотека неизменно отдает предпочтение указателям на приемники?