提取slice的最后一个元素的方法是什么?

1
2
3
4
5
6
var slice []int

slice = append(slice, 2)
slice = append(slice, 7)

slice[len(slice)-1:][0] // Retrieves the last element

上面的解决方案是可行的,但看起来很尴尬。

只需读取切片的最后一个元素:

1
sl[len(sl)-1]

拆卸时:

1
sl = sl[:len(sl)-1]

请参阅本页关于切片技巧的内容

  • 谢谢大家!尽管看起来很傻,但他们没有添加Python拥有的-1索引…
  • 我确实喜欢Python中的-1,尽管它经常导致难以调试的错误。
  • 他们有意识地把它留在外面。不明显,容易出错。总体来说,go是对"太多意义"的谨慎;它也不具有方法/运算符重载、函数参数的默认值等特性,imho采用了类似的哲学方式。看看这个讨论和其他:groups.google.com/forum/!主题/Golang Nuts/yn9q6hhgwi0
  • 太好了,我们如何引用弹出的论点?

不那么优雅,但也可以做到:

1
sl[len(sl)-1: len(sl)]
  • 这与sl[len(sl)-1:]相同,但它返回一个包含最后一个元素的切片,而不仅仅是最后一个元素。play.golang.org/p/kcthrqa-64c游戏