Comment obtenir le dernier élément d'une slice en Go ?
Bonjour à tous ! Je viens de commencer à apprendre Go et j'ai rencontré un problème. J'ai une slice de strings `names := []string{"Alice", "Bob", "Charlie"}`. J'ai besoin d'obtenir le dernier élément de cette slice pour l'afficher ou le traiter.
En Python, j'écrirais `names[-1]` et tout fonctionnerait. Mais en Go, cette écriture provoque une erreur de compilation : `invalid slice index -1`. J'ai cherché sur Google et j'ai découvert qu'en Go, on ne peut pas utiliser d'index négatifs.
Pour l'instant, je n'ai trouvé que cette méthode bancale :
```go
package main
import "fmt"
func main() {
names := []string{"Alice", "Bob", "Charlie"}
last := names[len(names)-1]
fmt.Println(last)
}
```
Cela fonctionne, mais cela me semble peu fiable, surtout si la slice est vide. Hier, j'ai eu un bug : j'ai oublié de vérifier que la slice n'était pas vide, et le programme a planté avec une panique `panic: runtime error: index out of range [0]`.
Dites-moi, comment obtenir le dernier élément d'une slice de manière correcte et sécurisée ? Existe-t-il une fonction intégrée en Go pour cela ?
No answers yet.
Connectez-vous pour laisser une réponse
Blogs