Avatar ·

¿Cómo obtener el último elemento de un slice en Go? ¿Existe una función incorporada?

¡Hola! Acabo de empezar a aprender Go después de Python y tengo un problema con los slices. En Python estoy acostumbrado a obtener el último elemento de una lista con `my_list[-1]`, pero en Go esa sintaxis no funciona: el compilador da el error "invalid slice index -1". Intenté escribir algo como `arr[len(arr) - 1]`, pero parece engorroso y, sinceramente, no estoy seguro de que sea correcto. Por ejemplo, ¿qué pasa si el slice está vacío? Tenía este código: ```go package main import "fmt" func main() { fruits := []string{"apple", "banana", "cherry"} // ¿Cómo obtener "cherry"? fmt.Println(fruits[-1]) // ¡Error! fmt.Println(fruits[len(fruits)-1]) // ¿Funciona? } ``` Pero me temo que si el slice está vacío, `len(fruits) - 1` dará -1 y el programa fallará con un panic. ¿Hay en Go alguna función incorporada como `last()` o alguna forma idiomática de obtener el último elemento de forma segura? ¿O tengo que escribir una comprobación de la longitud del slice cada vez? ¡Dime cómo hacerlo correctamente!