Lektionen des Moduls (1/5)
Signatur und Parameter
In Go werden Funktionen mit func deklariert. Die Signatursyntax ist unterschiedlich
aus C/Java: Der Typ steht hinter dem Parameternamen, getrennt durch a
Raum. Es ist eine Auswahl, die sich besser laut lesen lässt – stattdessen „n vom Typ int“.
von „int n“.
Grundlegende Syntax
func sum(a int, b int) int {
return a + b
}
func greet(name string) {
fmt.Println("ciao", name)
}Eine Funktion ohne Rückgabewert lässt einfach den Rückgabetyp weg.
Aufeinanderfolgende Parameter desselben Typs
Wenn mehrere aufeinanderfolgende Parameter denselben Typ haben, können Sie sie deklarieren es nur einmal auf dem letzten. Es ist idiomatisch und man sieht es überall:
func sum(a, b int) int { return a + b }
func max3(a, b, c float64) float64 { /* ... */ }
func parse(s, sep string, limit int) []string { /* ... */ }Exportierte vs. nicht exportierte Funktionen
In Go wird die Sichtbarkeit durch den Namen bestimmt: Bezeichner, die beginnen mit einem Großbuchstaben werden exportiert (sichtbar aus anderen Paketen), Die anderen sind für das Paket privat.
func Sum(a, b int) int { ... } // esportata
func helper() { ... } // privata al packageFunktioniert als Werte
Funktionen sind erstklassige Werte: Sie können sie zuweisen, übergeben und gib sie zurück. Wir werden tiefer in die Lektion über Schließungen eintauchen.
op := sum // op ha tipo func(int, int) int
fmt.Println(op(2, 3)) // 5main und init: zwei spezielle Namen
func main()ist der Einstiegspunkt desmain-Pakets. Keine Argumente, keine Rückgabewerte.func init()wird beim Paketstart automatisch aufgerufen (auch mehrfach). mal, wenn mehrere Dateien eine definieren). Nützlich für die Einrichtung; Verwenden Sie es sparsam.
Probieren Sie es aus
Definieren Sie eine Funktion sum(a, b int) int, die a+b zurückgibt, und rufen Sie sie dann in main mit (3, 4) auf.
Hinweis anzeigen
Gemeinsamer Typ: `(a, b int)`. Der Rückgabetyp steht NACH den Klammern.
Lösung nach 3 Versuchen verfügbar
Definieren Sie „greet(name string)“ (kein Rückgabewert), der „ciao <name>“ ausgibt.
Hinweis anzeigen
Kein Rückgabetyp, wenn die Funktion nichts zurückgibt.
Lösung nach 3 Versuchen verfügbar
Wohin geht der Parametertyp in Go?
func f(? ?) {}Zusammenfassung
func name(param type, ...) returnType { ... }.- Geben Sie nach dem Namen ein; aufeinanderfolgende Parameter desselben Typs → nur einmal deklarieren.
- Großbuchstabe = exportiert; Kleinbuchstaben = privat für das Paket.
- Funktionen sind erstklassig (belegbar, passabel).
mainundinitsind reservierte Namen mit besonderer Semantik.