Middle+
Pourquoi il n'y aura pas de panique sur la ligne test2 := test1[3:] et pourquoi affichera-t-il [4 5] ?
sobes.tech IA
Réponse de l'IA
En Go, les slices (segments) sont conçus de manière à ce que l'expression test1[3:] signifie prendre une tranche à partir de l'indice 3 jusqu'à la fin du slice original test1. Il n'y aura pas de panic si l'indice 3 ne dépasse pas la longueur du slice.
Par exemple, si test1 est un slice de 5 éléments : [1, 2, 3, 4, 5], alors test1[3:] renverra les éléments aux indices 3 et 4, c'est-à-dire [4, 5].
Le panic se produit si l'indice de début de la tranche est supérieur à la longueur du slice, par exemple test1[6:] lorsque la longueur est 5.
Exemple :
package main
import "fmt"
func main() {
test1 := []int{1, 2, 3, 4, 5}
test2 := test1[3:] // tranche du 4ème élément jusqu'à la fin
fmt.Println(test2) // affichera [4 5]
}