Direkt zum Hauptinhalt springen
eLearner.app
Modul 3 · Lektion 1 von 511/50 im Kurs~10 min
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

Go
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:

Go
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.

Go
func Sum(a, b int) int { ... }    // esportata
func helper() { ... }              // privata al package

Funktioniert 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.

Go
op := sum            // op ha tipo func(int, int) int
fmt.Println(op(2, 3)) // 5

main und init: zwei spezielle Namen

  • func main() ist der Einstiegspunkt des main-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

Übung#go.m3.l1.e1
Versuche: 0Wird geladen…

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.

Editor wird geladen…
Hinweis anzeigen

Gemeinsamer Typ: `(a, b int)`. Der Rückgabetyp steht NACH den Klammern.

Lösung nach 3 Versuchen verfügbar

Übung#go.m3.l1.e2
Versuche: 0Wird geladen…

Definieren Sie „greet(name string)“ (kein Rückgabewert), der „ciao <name>“ ausgibt.

Editor wird geladen…
Hinweis anzeigen

Kein Rückgabetyp, wenn die Funktion nichts zurückgibt.

Lösung nach 3 Versuchen verfügbar

Quiz#go.m3.l1.e3
Bereit

Wohin geht der Parametertyp in Go?

Go
func f(? ?) {}
Antwortoptionen

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).
  • main und init sind reservierte Namen mit besonderer Semantik.