Saya seorang pemula dalam pengaturcaraan dan stackoverflow.
Saya perlu mencipta fungsi rekursif dalam go yang menambah elemen tatasusunan dan mengembalikan 0 jika panjang tatasusunan ialah 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) }
Ia memberi saya ralat ini tetapi saya tidak memahaminya.
<code> cannot use vector[n] + vector[n - 1] (value of type int) as []int value in argument to Suma </code>
Mengapa ralat ini berlaku dan bagaimana untuk membetulkannya?
Mesej ralat yang anda lihat adalah kerana anda cuba menghantar nilai int kepada fungsi Suma, yang menjangkakan kepingan 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) }
Atas ialah kandungan terperinci Pergi ralat: nilai jenis int sebagai nilai int. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!