Na przykład nazwane parametry powrotu są dostępne za pomocą, no, nazwa.
func foo() (a, b, c T) {
// ...
if qux {
b = bar()
}
// ...
return
}
To nie jest łatwe do powielenia bez nazwanych parametrów zwracanych. Należy wprowadzić zmienne lokalne o zasadniczo takiej samej funkcjonalności, co nazwane parametry zwracane:
func foo() (T, T, T) {
var a, b, c T
// ...
if qux {
b = bar()
}
// ...
return a, b, c
}
Łatwiej jest to dopuścić bezpośrednio.
Dodatkowo są przystępnie również w drugą stronę:
func foo() (a, b, c T) {
// ...
if a > c {
b = bar()
}
// ...
return
}
Itd
Aby dodać do odpowiedzi z @ thomaskappler i dyskusji tam (nie mogę jeszcze komentować), można użyć nazwanych parametrów wyników, a także określić zmienne w swoim zwrocie. Zapewnia to korzyści wynikające z dokumentacji, ale usuwa obawy związane z cieniem. Jednak eliminuje> Jeśli masz wiele witryn zwrotnych, nie musisz ich zmieniać, jeśli zmienisz wartości zwracane przez funkcję, ponieważ po prostu powiesz "return". zasiłek. – darkwing