Valori returnate
O funcție poate trimite o valoare înapoi către cel care a apelat-o. Pentru asta, declară tipul de date al valorii returnate (int, string și așa mai departe) în semnătura funcției și folosește cuvântul cheie return în corpul funcției.
Sintaxa return
func FunctionName(param1 type, param2 type) type {
// code to be executed
return output
}
Exemplu de returnare din funcție
Această funcție myFunction() primește două numere întregi, x și y, le adună (x + y) și returnează suma ca int.
Exemplu
Ieșire: Program Go și ieșirea capturată
package main
import ("fmt")
func myFunction(x int, y int) int {
return x + y
}
func main() {
fmt.Println(myFunction(1, 2))
}
Valori returnate cu nume
Go îți permite și să dai un nume unei valori returnate.
În acest exemplu, valoarea returnată se numește result și are tipul int. Pentru că are deja un nume, este suficient un simplu return. Folosirea lui return fără un nume de variabilă, ca aici, se numește „naked return”.
Exemplu
Ieșire: Program Go și ieșirea capturată
package main
import ("fmt")
func myFunction(x int, y int) (result int) {
result = x + y
return
}
func main() {
fmt.Println(myFunction(1, 2))
}
Stocarea valorii returnate într-o variabilă
În loc să afișezi direct rezultatul unei funcții, îl poți păstra într-o variabilă pentru a-l folosi mai târziu.
Exemplu
Ieșire: Program Go și ieșirea capturată
package main
import ("fmt")
func myFunction(x int, y int) (result int) {
result = x + y
return
}
func main() {
total := myFunction(1, 2)
fmt.Println(total)
}
Mai multe valori returnate
O funcție Go nu este limitată la o singură valoare returnată; poate returna mai multe deodată.
Exemplu
Această funcție myFunction() returnează două valori: un număr întreg numit result și un șir de caractere numit txt1.
Ieșire: Program Go și ieșirea capturată
package main
import ("fmt")
func myFunction(x int, y string) (result int, txt1 string) {
result = x + x
txt1 = y + " Lume!"
return
}
func main() {
fmt.Println(myFunction(5, "Salut"))
}
Exemplu
Cele două valori returnate pot fi atribuite deodată la două variabile, în acest caz a și b.
Ieșire: Program Go și ieșirea capturată
package main
import ("fmt")
func myFunction(x int, y string) (result int, txt1 string) {
result = x + x
txt1 = y + " Lume!"
return
}
func main() {
a, b := myFunction(5, "Salut")
fmt.Println(a, b)
}
Exemplu
Uneori ai nevoie doar de o parte din ce returnează o funcție. Scrie o liniuță de subliniere (_) în locul valorii pe care vrei să o omiți. Aici este omisă prima valoare.
Ieșire: Program Go și ieșirea capturată
package main
import ("fmt")
func myFunction(x int, y string) (result int, txt1 string) {
result = x + x
txt1 = y + " Lume!"
return
}
func main() {
_, b := myFunction(5, "Salut")
fmt.Println(b)
}
Exemplu
De data aceasta, liniuța de subliniere se află pe a doua poziție, așa că a doua valoare returnată (txt1) este ignorată.
Ieșire: Program Go și ieșirea capturată
package main
import ("fmt")
func myFunction(x int, y string) (result int, txt1 string) {
result = x + x
txt1 = y + " Lume!"
return
}
func main() {
a, _ := myFunction(5, "Salut")
fmt.Println(a)
}