Avatar ·

Cómo obtener el último elemento de un slice en Go?

¡Hola a todos! Acabo de empezar a aprender Go y me encontré con este problema. Tengo un slice de strings `names := []string{"Alice", "Bob", "Charlie"}`. Necesito obtener el último elemento de este slice para mostrarlo en pantalla o procesarlo. En Python escribiría `names[-1]` y funcionaría. Pero en Go esta notación causa un error de compilación: `invalid slice index -1`. Busqué en Google y encontré que en Go no se pueden usar índices negativos. Por ahora solo se me ocurrió esta forma chapucera: ```go package main import "fmt" func main() { names := []string{"Alice", "Bob", "Charlie"} last := names[len(names)-1] fmt.Println(last) } ``` Esto funciona, pero me parece poco confiable, especialmente si el slice resulta estar vacío. Ayer tuve un bug: olvidé verificar que el slice no estuviera vacío y el programa falló con un pánico `panic: runtime error: index out of range [0]`. Díganme, ¿cómo obtener correcta y seguramente el último elemento de un slice? ¿Hay alguna función incorporada en Go?