Einführung
In diesem Lab wird Ihre Kenntnis von rekursiven Funktionen in Golang getestet.
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
In diesem Lab wird Ihre Kenntnis von rekursiven Funktionen in Golang getestet.
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.
sum
-Funktion muss mithilfe von Rekursion implementiert werden.$ 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))
}
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.