Maison > Article > développement back-end > Résoudre l'erreur Golang : index hors plage, solution
Solution à l'erreur Golang : index hors plage, solution
Lorsque vous utilisez Golang pour écrire des programmes, vous rencontrez souvent une erreur : index hors plage. Cette erreur signifie généralement que nous accédons à un tableau, une tranche ou une chaîne en dehors de sa plage d'index. Cet article présentera la cause de cette erreur et proposera plusieurs solutions.
Tout d'abord, regardons un exemple de code simple :
package main import "fmt" func main() { arr := [3]int{1, 2, 3} fmt.Println(arr[3]) }
Exécutez le code ci-dessus, nous obtiendrons le message d'erreur suivant :
panic: runtime error: index out of range goroutine 1 [running]: main.main() /path/to/your/code/main.go:7 +0x4e exit status 2
Ce message d'erreur nous indique que l'erreur s'est produite à la ligne 7 du code. Dans cette ligne de code, nous essayons d'accéder au 3ème élément d'un tableau arr, mais en fait le tableau ne comporte que 3 éléments, et la plage d'index est de 0 à 2. Par conséquent, l'accès à arr[3] dépasse la plage d'index, ce qui entraîne cette erreur.
Alors, comment résoudre ce problème ? Voici quelques solutions de contournement :
package main import "fmt" func main() { arr := [3]int{1, 2, 3} if len(arr) > 3 { fmt.Println(arr[3]) } else { fmt.Println("索引超出范围") } }
Dans ce code modifié, nous utilisons d'abord la fonction len() pour obtenir la longueur du tableau arr, puis déterminons si la longueur est supérieure que 3. Si tel est le cas, accédez à arr[3], sinon affichez "index hors plage".
package main import "fmt" func main() { arr := [3]int{1, 2, 3} for i, value := range arr { fmt.Println(i, value) } }
Dans l'exemple ci-dessus, nous parcourons le tableau arr en utilisant le mot-clé range. Dans chaque itération, i représente l'index de l'élément actuel et value représente la valeur de l'élément actuel. De cette façon, nous n’avons pas à craindre de sortir de la plage d’index.
package main import "fmt" func main() { slice := []int{1, 2, 3} fmt.Println(slice[3]) // 报错:index out of range slice = append(slice, 4) fmt.Println(slice[3]) // 输出:4 }
Dans cet exemple, nous définissons d'abord une tranche, contenant 3 éléments. Ensuite, nous essayons d'accéder à slice[3], ce qui entraîne une erreur. Ensuite, nous utilisons la fonction append() pour ajouter dynamiquement un élément 4. À ce stade, la longueur de la tranche devient 4. Nous accédons à nouveau à slice[3] et le résultat de sortie est 4.
Résumé :
Lors de l'écriture de programmes en Golang, il est inévitable de rencontrer des erreurs d'index hors plage. Mais en prêtant attention à la plage de l'index, en utilisant le mot-clé range pour parcourir et en utilisant des tranches au lieu de tableaux, nous pouvons résoudre efficacement ce problème. J'espère que l'introduction de cet article pourra être utile à tout le monde rencontrant des problèmes similaires dans le développement de Golang.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!