提取切片的最后一个元素的方式是什么?
var slice []int
slice = append(slice, 2)
slice = append(slice, 7)
slice[len(slice)-1:][0] // Retrieves the last element
上述解决方案可行,但似乎有些尴尬。
更尴尬的是你的程序在空片上崩溃了!
要处理空片(长度为零导致恐慌:运行时错误
),可以使用if/then/else序列,也可以使用临时片来解决问题。
package main
import (
"fmt"
)
func main() {
// test when slice is not empty
itemsTest1 := []string{"apple", "grape", "orange", "peach", "mango"}
tmpitems := append([]string{"none"},itemsTest1...)
lastitem := tmpitems[len(tmpitems)-1]
fmt.Printf("lastitem: %v\n", lastitem)
// test when slice is empty
itemsTest2 := []string{}
tmpitems = append([]string{"none"},itemsTest2...) // <--- put a "default" first
lastitem = tmpitems[len(tmpitems)-1]
fmt.Printf("lastitem: %v\n", lastitem)
}
这将为您提供以下输出:
lastitem: mango
lastitem: none
对于[]int
切片,您可能希望默认值为-1
或0
。
在更高的层次上思考,如果你的切片总是带有默认值,那么“tmp”切片可以被删除。
您可以使用len(arr)
函数,尽管它将返回从1开始的切片长度,并且当Go数组/切片从索引0开始时,最后一个元素实际上是len(arr)-1
例子:
arr := []int{1,2,3,4,5,6} // 6 elements, last element at index 5
fmt.Println(len(arr)) // 6
fmt.Println(len(arr)-1) // 5
fmt.Println(arr[len(arr)-1]) // 6 <- element at index 5 (last element)
问题内容: 提取切片的最后一个元素的Go方法是什么? 上面的解决方案有效,但看起来很尴尬。 问题答案: 仅读取切片的最后一个元素: 要删除它: 参见此页面有关切片技巧
问题内容: 有没有办法只分割列表中的第一项和最后一项? 例如; 如果这是我的清单: 我 想 这样做(显然是无效的语法): 我尝试过的一些方法: 问题答案: 单程: 更好的方法(不使用切片,但更易于阅读):
rank ▲ ✰ vote url 61 374 45 700 url 获取列表最后一个元素 在Python里,如何获取一个列表的最后一个元素? some_list[-1]最短最Pythonic的方法. 事实上你可以用这个语法做好多事.some_list[-n]语法获取倒数第n个元素.所以some_list[-1]获取最后一个元素,some_list[-2]获取倒数第二个,等等.最后some_li
问题内容: 我正在使用String split方法,并且我想拥有最后一个元素。数组的大小可以更改。 例: 我想分割上面的字符串并得到最后一个项目: 我不知道在运行时数组的大小:( 问题答案: 将数组保存在局部变量中,并使用数组的字段查找其长度。减去1以说明它是基于0的: 注意:如果原始字符串仅由分隔符组成,例如或,则为0,这将引发ArrayIndexOutOfBoundsException。示例:
问题内容: 如何获取ArrayList的最后一个值? 我不知道ArrayList的最后一个索引。 问题答案: 以下是接口的一部分(由ArrayList实现): 是元素类型。如果列表为空,则抛出。你可以在此处找到整个API文档。
问题内容: 我有一个集合,我想获取集合的最后一个元素。最直接,最快捷的方法是什么? 一种解决方案是先toArray(),然后返回数组的最后一个元素。还有其他更好的方法吗? 问题答案: 这不是一个非常有效的解决方案,但是可以工作一个: