Zum Hauptinhalt springen
Veröffentlicht am

Funktionen in Go

Teilen:

Einführung

In der Welt der Programmierung sind Funktionen wiederverwendbare Codeblöcke, die eine bestimmte Aufgabe erfüllen. Go ist eine moderne und leistungsstarke Sprache und bietet eine Vielzahl von Funktionsmerkmalen, die es einzigartig machen.

Funktionen Deklarieren

In Go wird eine Funktion mit dem Schlüsselwort func deklariert, gefolgt vom Funktionsnamen, den Parametern (falls vorhanden) und dem Rückgabetyp.

func funktionsName(parameter1 typ1, parameter2 typ2) rueckgabeTyp {
  // Funktionsrumpf
}

Zum Beispiel:

func summe(a int, b int) int {
  return a + b
}

Mehrere Rückgabewerte

Eine interessante Eigenschaft von Go ist die Möglichkeit, mehrere Werte aus einer Funktion zurückzugeben.

func divisionUndRest(a int, b int) (int, int) {
  return a / b, a % b
}

Diese Funktion gibt sowohl den Quotienten als auch den Rest der Division zurück.

Anonyme Funktionen und Closures

Go unterstützt anonyme Funktionen, die Closures bilden können. Anonyme Funktionen sind nützlich, wenn man eine Funktion inline definieren möchte, ohne ihr einen Namen zu geben.

func() {
  fmt.Println("Dies ist eine anonyme Funktion!")
}()

Eine Closure ist eine Funktion, die Zugriff auf die Variablen ihrer äußeren Umgebung hat:

func zaehler() func() int {
  zaehlerstand := 0

  return func() int {
    zaehlerstand++
    return zaehlerstand
  }
}

func main() {
  meinZaehler := zaehler()
  fmt.Println(meinZaehler()) // Gibt 1 aus
  fmt.Println(meinZaehler()) // Gibt 2 aus
}

Variadische Parameter

Go ermöglicht auch die Verwendung variadischer Parameter, was bedeutet, dass du einer Funktion eine beliebige Anzahl von Parametern übergeben kannst. Sie werden mit ... vor dem Parametertyp definiert.

func summierung(zahlen ...int) int {
  gesamt := 0

  for _, num := range zahlen {
    gesamt += num
  }

  return gesamt
}

Fazit

Funktionen in Go sind vielseitig und leistungsstark und ermöglichen es Entwicklern, sauberen, effizienten und wiederverwendbaren Code zu schreiben. Ob man mehrere Rückgabewerte nutzt, Closures einsetzt oder variadische Parameter verarbeitet – Funktionen in Go zu beherrschen ist für eine effektive Programmierung unerlässlich.

Happy coding!