При использовании именованных параметров результата учитывайте как это будет выглядеть в godoc. Например, именованные параметры результата, такие как:
func (n *Node) Parent1() (node *Node)
func (n *Node) Parent2() (node *Node, err error)
будут иметь проблемы в godoc; лучше использовать:
func (n *Node) Parent1() *Node
func (n *Node) Parent2() (*Node, error)
С другой стороны, если функция возвращает два или три параметра одного и того же типа или если значение результата неясно из контекста, добавление имен может быть полезно в некоторых контекстах. Не называйте параметры результата только для того, чтобы избежать объявления переменной внутри функции; это заменяет небольшую краткость реализации ценой ненужного многословия API.
func (f *Foo) Location() (float64, float64, error)
не так ясно как:
// Местоположение возвращает широту и долготу f.
// Отрицательные значения означают юг и запад соответственно.
func (f *Foo) Location() (lat, long float64, err error)
Безыменные возвраты это нормально, если функция состоит из нескольких строк. Как только это функция среднего размера, будьте явными со своими возвращаемыми значениями. Следствие: не стоит называть параметры результата только потому, что это позволяет вам использовать безыменные результаты. Ясность документов всегда важнее, чем сохранение одной или двух строк в вашей функции.
Наконец, в некоторых случаях вам нужно назвать параметр результата, чтобы изменить его в отложенном замыкании. Это всегда хорошо.
Читайте также:
Комментариев нет:
Отправить комментарий