In Go werden Funktionen mit dem func
-Schlüsselwort definiert, gefolgt vom Funktionsnamen und einer Reihe von Klammern, die die Parameterliste enthalten. Der Körper der Funktion ist in lockigen Klammern {}
eingeschlossen. Hier ist ein grundlegendes Beispiel für eine Funktionsdefinition:
<code class="go">func add(a int, b int) int { return ab }</code>
In diesem Beispiel ist add
eine Funktion, die zwei Parameter vom Typ int
nimmt und ein int
zurückgibt.
Um eine Funktion in Go aufzurufen, verwenden Sie einfach den Funktionsnamen, gefolgt von den Argumenten in Klammern. Zum Beispiel:
<code class="go">result := add(3, 4) fmt.Println(result) // Output: 7</code>
Hier wird die add
mit Argumenten 3
und 4
aufgerufen und das Ergebnis in der result
gespeichert.
In Go folgt die Benennung der Funktion bestimmte Konventionen, um die Lesbarkeit und Konsistenz aufrechtzuerhalten. Hier sind einige Best Practices:
calculateAverage
.calculateAverage
als etwas Kryptisches wie calcAvg
bezeichnet werden.calculate
wird vor calc
bevorzugt.Add
exportiert, während add
nicht ist.In Go können Sie Argumente an Funktionen mit unterschiedlichen Methoden übergeben, die jeweils eigene Eigenschaften haben:
Wertparameter : Die Standardmethode zum Übergeben von Argumenten in GO ist nach Wert. Wenn Sie ein Argument nach Wert bestehen, wird eine Kopie des Wertes erstellt und an die Funktion übergeben. Änderungen des Parameters innerhalb der Funktion beeinflussen den ursprünglichen Wert außerhalb der Funktion nicht.
<code class="go">func incrementByValue(x int) { x } a := 1 incrementByValue(a) fmt.Println(a) // Output: 1 (a remains unchanged)</code>
Zeigerparameter : Sie können einen Zeiger an einen Wert übergeben. Dadurch kann die Funktion den ursprünglichen Wert ändern.
<code class="go">func incrementByPointer(x *int) { (*x) } a := 1 incrementByPointer(&a) fmt.Println(a) // Output: 2 (a is modified)</code>
Variadische Parameter : GO unterstützt variadische Funktionen, die eine unbestimmte Anzahl von Argumenten desselben Typs akzeptieren können. Der variadische Parameter wird mit ...
vor dem Typ bezeichnet.
<code class="go">func sum(numbers ...int) int { total := 0 for _, num := range numbers { total = num } return total } fmt.Println(sum(1, 2, 3, 4)) // Output: 10</code>
Rückgabewerte in GO -Funktionen spielen eine entscheidende Rolle bei der Ermöglichung von Funktionen, die Ergebnisse an den Anrufer zu vermitteln. Hier sind wichtige Punkte zu Rückgabewerten in Go:
Einzelrückgabewert : Eine Funktion kann einen einzelnen Wert zurückgeben. Der Rückgabetyp wird nach der Parameterliste angegeben.
<code class="go">func square(x int) int { return x * x }</code>
Mehrere Rückgabewerte : GO ermöglicht Funktionen, mehrere Werte zurückzugeben. Dies ist nützlich, um sowohl ein Ergebnis als auch einen Fehler zurückzugeben.
<code class="go">func divide(a, b float64) (float64, error) { if b == 0 { return 0, errors.New("division by zero") } return a / b, nil } result, err := divide(10, 2) if err != nil { fmt.Println(err) } else { fmt.Println(result) // Output: 5 }</code>
Benannte Rückgabewerte : GO unterstützt benannte Rückgabewerte, die den Code lesbarer machen können. Die benannten Rückgabeteile werden als Teil der Funktionssignatur deklariert.
<code class="go">func namedReturn(x int) (result int) { result = x * x return }</code>
Bare Return : Bei der Verwendung benannter Rückgaberwerts ermöglicht Go die Verwendung einer Bare return
-Anweisung, die die benannten Rückgabewerte zurückgibt.
<code class="go">func namedReturnWithBareReturn(x int) (result int) { result = x * x return // equivalent to return result }</code>
Die Rückgabeteile sind für die Fehlerbehandlung von entscheidender Bedeutung, sodass Funktionen sowohl ein Ergebnis als auch einen Fehlerstatus zurückgeben können. Dies ist ein gemeinsames Muster bei der Go -Programmierung.
Das obige ist der detaillierte Inhalt vonWie definieren und rufen Sie Funktionen in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!