如何在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中有内置函数吗?