Ich bin ein Anfänger in Programmierung und Stackoverflow.
Ich muss in go eine rekursive Funktion erstellen, die Elemente eines Arrays hinzufügt und 0 zurückgibt, wenn die Länge des Arrays 0 ist.
func Suma(vector []int) int { n := len(vector) if n == 0 { return 0 } else { return Suma(vector[n] + vector[n-1]) } } func main() { fmt.Println("Hello, 世界") vector := []int{1, 2, 3, 4, 5} res := Suma(vector) fmt.Println(res) }
Es gibt mir diesen Fehler, aber ich verstehe ihn nicht.
<code> cannot use vector[n] + vector[n - 1] (value of type int) as []int value in argument to Suma </code>
Warum tritt dieser Fehler auf und wie kann man ihn beheben?
Die Fehlermeldung, die Sie sehen, liegt daran, dass Sie versuchen, einen int-Wert an die Suma-Funktion zu übergeben, die einen int-Slice erwartet.
package main import "fmt" func Suma(vector []int) int { n := len(vector) if n == 0 { return 0 } else { // You should call Suma recursively with a slice of the vector, excluding the last element. // Also, you need to add the current element (vector[n-1]) to the sum. return vector[n-1] + Suma(vector[:n-1]) } } func main() { fmt.Println("Hello, 世界") vector := []int{1, 2, 3, 4, 5} res := Suma(vector) fmt.Println(res) }
Das obige ist der detaillierte Inhalt vonGo-Fehler: Wert vom Typ int als int-Wert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!