Rekursive Funktionen in Golang

GolangGolangBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab wird Ihre Kenntnis von rekursiven Funktionen in Golang getestet.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL go(("Golang")) -.-> go/FunctionsandControlFlowGroup(["Functions and Control Flow"]) go/FunctionsandControlFlowGroup -.-> go/recursion("Recursion") subgraph Lab Skills go/recursion -.-> lab-15501{{"Rekursive Funktionen in Golang"}} end

Rekursion

Die sum-Funktion nimmt ein Slice von ganzen Zahlen entgegen und gibt die Summe aller ganzen Zahlen im Slice zurück. Die Funktion ist jedoch unvollständig und muss mithilfe von Rekursion implementiert werden.

  • Die sum-Funktion muss mithilfe von Rekursion implementiert werden.
  • Die Funktion muss ein Slice von ganzen Zahlen als Eingabe entgegennehmen.
  • Die Funktion muss die Summe aller ganzen Zahlen im Slice zurückgeben.
$ go run recursion.go
5040
13

Hier ist der vollständige Code:

// Go unterstützt
// <a href="https://en.wikipedia.org/wiki/Recursion_(computer_science)"><em>rekursive Funktionen</em></a>.
// Hier ist ein klassisches Beispiel.

package main

import "fmt"

// Diese `fact`-Funktion ruft sich selbst auf, bis sie den
// Basisfall von `fact(0)` erreicht.
func fact(n int) int {
	if n == 0 {
		return 1
	}
	return n * fact(n-1)
}

func main() {
	fmt.Println(fact(7))

	// Schließungen können ebenfalls rekursiv sein, erfordern jedoch,
	// dass die Schließung explizit mit einem typisierten `var`
	// deklariert wird, bevor sie definiert wird.
	var fib func(n int) int

	fib = func(n int) int {
		if n < 2 {
			return n
		}

		// Da `fib` zuvor in `main` deklariert wurde, weiß Go,
		// welche Funktion hier mit `fib` aufgerufen werden soll.
		return fib(n-1) + fib(n-2)
	}

	fmt.Println(fib(7))
}

Zusammenfassung

In diesem Lab waren Sie mit der Implementierung der sum-Funktion mithilfe von Rekursion betraut. Rekursion ist ein leistungsstarkes Werkzeug, das komplexe Probleme vereinfachen kann, indem sie in kleinere Teilprobleme zerlegt werden. Durch die Fertigstellung dieses Labs sollten Sie jetzt ein besseres Verständnis dafür haben, wie Rekursion in Golang eingesetzt wird.