删除切片中的元素
这段 Go 代码演示了如何从切片中删除元素:
func main() { a := []string{"Hello1", "Hello2", "Hello3"} fmt.Println(a) // [Hello1 Hello2 Hello3] a = append(a[:0], a[1:]...) fmt.Println(a) // [Hello2 Hello3] }
此代码演示了使用追加函数删除元素的技巧。这是如何工作的以及...(点点点)运算符的作用是什么?
从切片 a 中删除索引 i 处的元素的语法是:
a = append(a[:i], a[i+1:]...)
解释:
调用append时,第一个参数必须是与被修改的切片相同类型的切片(本例中为a),第二个参数是接受任意数字的可变参数相同类型的元素,返回值是添加元素的新切片。
在给定的代码中,扩展运算符将 a[1:] 中的元素解压到可变参数中的附录。这相当于手动传入元素a[1], a[2], ...。第一个参数是空切片,以确保旧元素被覆盖。
结论:
这个技巧允许我们通过使用我们想要删除的元素之前和之后的元素重建切片来从切片中删除元素。扩展运算符在将要添加回切片的元素解包方面发挥着至关重要的作用。
以上是如何使用 Append 和 Spread 运算符高效地从 Go 切片中删除元素?的详细内容。更多信息请关注PHP中文网其他相关文章!