Heim >Backend-Entwicklung >Golang >Go-Fehler: Wert vom Typ int als int-Wert

Go-Fehler: Wert vom Typ int als int-Wert

王林
王林nach vorne
2024-02-06 09:45:11597Durchsuche

Go-Fehler: Wert vom Typ int als int-Wert

Frageninhalt

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?


Richtige Antwort


Das ist Ihre Frage:

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen