Como obter o último elemento de um slice em Go?
Olá a todos! Comecei a estudar Go recentemente e me deparei com um problema. Tenho um slice de strings `names := []string{"Alice", "Bob", "Charlie"}`. Preciso obter o último elemento desse slice para exibi-lo na tela ou processá-lo.
Em Python, eu escreveria `names[-1]` e funcionaria. Mas em Go, essa sintaxe causa um erro de compilação: `invalid slice index -1`. Pesquisei e descobri que em Go não é possível usar índices negativos.
Por enquanto, só consegui pensar nesta solução improvisada:
```go
package main
import "fmt"
func main() {
names := []string{"Alice", "Bob", "Charlie"}
last := names[len(names)-1]
fmt.Println(last)
}
```
Isso funciona, mas me parece não muito seguro, especialmente se o slice estiver vazio. Ontem tive um bug: esqueci de verificar se o slice não estava vazio, e o programa travou com um panic `panic: runtime error: index out of range [0]`.
Alguém pode me dizer como obter o último elemento de um slice de forma correta e segura? Existe alguma função embutida em Go para isso?