我是编程和 stackoverflow 的初学者。
我必须在 go 中创建一个递归函数来添加数组的元素,如果数组的长度为 0,则返回 0。
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) }
它给了我这个错误,但我不明白。
<code> cannot use vector[n] + vector[n - 1] (value of type int) as []int value in argument to Suma </code>
为什么会出现此错误以及如何修复它?
您看到的错误消息是因为您尝试将 int 值传递给 Suma 函数,该函数需要一个 int 切片。
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) }
以上是Go错误:int类型的值作为int值的详细内容。更多信息请关注PHP中文网其他相关文章!