Avatar ·

Como obter o último elemento de um slice em Go? Existe uma função embutida?

Olá! Comecei a estudar Go recentemente depois do Python e tive um problema com slices. Em Python, estou acostumado a obter o último elemento de uma lista com `my_list[-1]`, mas em Go essa sintaxe não funciona — o compilador retorna o erro "invalid slice index -1". Tentei escrever algo como `arr[len(arr) - 1]`, mas parece verboso e, honestamente, não tenho certeza se está correto. Por exemplo, o que acontece se o slice estiver vazio? Eu tinha este código: ```go package main import "fmt" func main() { fruits := []string{"apple", "banana", "cherry"} // Como obter "cherry"? fmt.Println(fruits[-1]) // Erro! fmt.Println(fruits[len(fruits)-1]) // Funciona? } ``` Mas tenho medo de que, se o slice estiver vazio, `len(fruits) - 1` resulte em -1 e o programa entre em pânico. Existe em Go uma função embutida como `last()` ou alguma forma idiomática de obter o último elemento com segurança? Ou preciso sempre escrever uma verificação de tamanho do slice? Me diga como fazer corretamente!