Maison > développement back-end > Golang > Comment puis-je éviter les erreurs hors limites lors du découpage en Go ?

Comment puis-je éviter les erreurs hors limites lors du découpage en Go ?

DDD
Libérer: 2024-11-28 15:59:11
original
266 Les gens l'ont consulté

How Can I Prevent Out-of-Bounds Errors When Slicing in Go?

Slicing in Go : éviter les erreurs hors limites

Slicing nous permet de créer une nouvelle tranche à partir d'une tranche existante en spécifiant une plage d'indices . Cependant, si la plage spécifiée dépasse les limites de la tranche d'origine, une erreur hors limites peut se produire.

Dans le code fourni, la ligne c := b[1:] tente de créer un nouveau tranche c de la tranche b. L'erreur se produit car la limite d'indice élevé pour c n'est pas explicitement spécifiée et la longueur par défaut de b, qui est 0.

La forme générale du découpage dans Go est :

subslice := original[start:end]
Copier après la connexion
  • start est l'index de départ inclusif de la nouvelle tranche.
  • end est l'index de fin exclusif de la nouvelle tranche. slice.

Si start est omis, la valeur par défaut est 0. Si end est omise, la valeur par défaut est len(original).

Dans le cas de slices, la limite d'index supérieure est limité par la capacité de la tranche (cap()), et non par sa longueur (len()). Cela signifie que si nous spécifions un index de fin supérieur à cap(original), il est toujours considéré comme valide. Cependant, si nous spécifions un index de fin supérieur à len(original), une erreur hors limites se produit.

Pour éviter cette erreur, nous devons nous assurer que la plage spécifiée ne dépasse pas les limites de la tranche originale. Dans l'exemple de code, nous pouvons résoudre le problème en spécifiant explicitement la limite supérieure de l'index :

c := b[1:2]
Copier après la connexion

Cela créera une tranche c d'une longueur de 1 et d'une capacité de 4, contenant l'élément à l'index 1. de la tranche b.

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!

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