💬 Можно ли давать имена возвращаемым значениям функции Go?
В отличие от C, Go позволяет называть возвращаемые значения Go-функции. Кроме того, когда такая функция имеет оператор
Следующая функция включена в
Здесь оператор
А здесь он эквивалентен
В отличие от C, Go позволяет называть возвращаемые значения Go-функции. Кроме того, когда такая функция имеет оператор
return
без каких-либо аргументов, она автоматически возвращает текущее значение каждого именованного возвращаемого значения в том порядке, в котором они были объявлены в сигнатуре.Следующая функция включена в
namedReturn.go
:func minMax(x, y int) (min, max int) {
if x > y {
min = y
max = x
return min, max
Здесь оператор
return
возвращает значения, сохраненные в переменных min
и max
. Обе переменные определены в сигнатуре, а не в теле функции.}
min = x
max = y
return
}
А здесь он эквивалентен
return min, max
. В его основе — сигнатура функции и использование именованных возвращаемых значений. При выполнении namedReturn.go
мы получаем такой вывод:$ go run namedReturn.go 1 -2
-2 1
-2 1