Avatar ·

如何在Go中获取切片的最后一个元素?

大家好!我刚开始学习Go,遇到了一个问题。我有一个字符串切片 `names := []string{"Alice", "Bob", "Charlie"}`。我需要获取这个切片的最后一个元素,以便输出或处理它。 在Python中,我会写 `names[-1]`,一切正常。但在Go中,这种写法会导致编译错误:`invalid slice index -1`。我查了一下,发现在Go中不能使用负索引。 目前我只想到了这种笨拙的方法: ```go package main import "fmt" func main() { names := []string{"Alice", "Bob", "Charlie"} last := names[len(names)-1] fmt.Println(last) } ``` 这能工作,但我觉得不太可靠,特别是如果切片是空的话。昨天我遇到了一个bug:我忘了检查切片是否为空,程序就崩溃了,报错 `panic: runtime error: index out of range [0]`。 请问如何正确且安全地获取切片的最后一个元素?Go中有内置函数吗?