go / beginner
Snippet
Mehrfache Rückgabewerte und benannte Ergebnisse
Go-Funktionen können mehrere Werte zurückgeben, was häufig verwendet wird, um neben einem Ergebnis auch einen Fehler zurückzugeben. Dieses Muster macht die Fehlerbehandlung explizit und lesbar. Du kannst auch die Rückgabewerte benennen, was Variablen erstellt, die auf ihre Nullwerte initialisiert werden. Die return-Anweisung ohne Argumente gibt diese benannten Variablen zurück. Dies ist idiomatischer Go-Code für die Fehlerbehandlung ohne Ausnahmen.
snippet.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package mainimport "fmt"func divide(a, b float64) (result float64, err error) {if b == 0 {err = fmt.Errorf("division by zero")return // returns result and err}result = a / breturn // returns result and err}func main() {quotient, err := divide(10, 3)if err != nil {fmt.Println("Error:", err)return}fmt.Printf("Result: %.2f\n", quotient)q2, err2 := divide(5, 0)if err2 != nil {fmt.Println("Error:", err2)}}
Erklärung
1
(result float64, err error)
Funktion deklariert zwei Rückgabewerte: einen Quotienten und einen Fehler
2
err = fmt.Errorf(...)
Erstellt einen Fehler, wenn eine Division durch Null versucht wird
3
quotient, err := divide(10, 3)
Empfängt beide Rückgabewerte, err ist nil bei Erfolg
4
return // ohne Argumente
Gibt die benannten Variablen result und err zurück