Maison > développement back-end > Golang > le corps du texte

Comment résoudre l'erreur Golang : panique : erreur d'exécution : index hors plage

WBOY
Libérer: 2023-08-19 09:28:41
original
2889 Les gens l'ont consulté

如何解决golang报错:panic: runtime error: index out of range

Comment résoudre l'erreur Golang : panique : erreur d'exécution : index hors de portée

Dans le processus d'utilisation de la programmation Golang, nous rencontrons souvent des erreurs, l'une des erreurs courantes est « panique : erreur d'exécution : index hors de portée gamme" gamme". Cette erreur se produit généralement lorsque nous essayons d'accéder à un élément dans une tranche ou un tableau, mais que l'index de cet élément est en dehors de la plage disponible. Cet article expliquera la cause de cette erreur et donnera des solutions et des exemples de code.

Tout d’abord, voyons pourquoi cette erreur se produit. Lorsque nous utilisons un index pour accéder à une tranche ou à un tableau, si l'index dépasse la plage disponible, une erreur « index hors plage » se produira. Par exemple, cette erreur se produit lorsque nous avons une tranche de longueur 5 et que nous essayons d'accéder à l'élément à l'index 6.

La clé pour résoudre ce problème est de s'assurer que l'index auquel nous accédons se trouve dans la plage de la tranche ou du tableau. Voici quelques solutions :

  1. Vérifiez la plage de l'index :
    Avant d'accéder à la tranche ou au tableau, nous pouvons utiliser une instruction conditionnelle pour vérifier si l'index est en dehors de la plage disponible. Par exemple, si nous avons une tranche de longueur 5, nous pouvons vérifier si l'index est valide par :
if index >= 0 && index < len(slice) {
    // 访问切片中的元素
    // ...
} else {
    // 处理索引超出范围的情况
    // ...
}
Copier après la connexion

De cette façon, nous pouvons juger si l'index est valide avant d'y accéder, évitant ainsi "l'index hors de portée " " erreur.

  1. Utilisez le mot-clé range :
    Une autre solution consiste à utiliser le mot-clé range pour parcourir la tranche ou le tableau. Le mot-clé range garantit que nous accédons uniquement aux éléments avec des index valides. Voici un exemple de code :
for index, value := range slice {
    // 使用index和value
    // ...
}
Copier après la connexion

En utilisant le mot-clé range, nous pouvons éviter d'accéder directement à l'index et utiliser à la place une variable d'itération pour accéder aux éléments d'une tranche ou d'un tableau.

Pour résumer, si nous rencontrons une erreur golang : « panique : erreur d'exécution : index hors de portée », nous devons vérifier et confirmer si l'index auquel nous accédons est dans la plage de la tranche ou du tableau. Nous pouvons utiliser des instructions conditionnelles ou un mot-clé range pour résoudre ce problème. Voici quelques exemples de code :

// 使用条件语句检查索引范围
func accessSliceByIndex(slice []int, index int) {
    if index >= 0 && index < len(slice) {
        fmt.Println(slice[index])
    } else {
        fmt.Println("索引超出范围")
    }
}

// 使用range关键字遍历切片
func rangeSlice(slice []int) {
    for index, value := range slice {
        fmt.Println(index, value)
    }
}

func main() {
    // 示例1:使用条件语句
    slice := []int{1, 2, 3, 4, 5}
    accessSliceByIndex(slice, 6)  // 输出:索引超出范围

    // 示例2:使用range关键字
    rangeSlice(slice)  // 输出:[0 1] [1 2] [2 3] [3 4] [4 5]
}
Copier après la connexion

Avec la solution ci-dessus, nous pouvons éviter l'apparition de l'erreur "panique : erreur d'exécution : index hors de portée" et accéder correctement aux éléments de la tranche ou du tableau. J'espère que cet article vous sera utile !

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal