📌  相关文章
📜  go add to slice - Go 编程语言 - Go 编程语言(1)

📅  最后修改于: 2023-12-03 15:15:21.121000             🧑  作者: Mango

Go编程语言:向切片中添加元素

在Go编程语言中,切片是一种动态数组,可以随时改变大小。有时候,我们需要向切片中添加元素。本文将介绍不同方法向切片中添加元素的技术。

使用 append() 函数

在Go中,在原有切片上添加元素的最常用方法是使用append()函数。使用它可以在切片的最后增加一个或者多个元素。

package main

import "fmt"

func main() {
    slice1 := []int{1, 2, 3, 4, 5}
    slice2 := append(slice1, 6)
    fmt.Println(slice2) // Output: [1 2 3 4 5 6]
}

append()函数接受一个切片并添加给定的值。它还可以接受多个值。例如,您可以使用下面的代码向切片中添加多个值:

package main

import "fmt"

func main() {
    slice1 := []int{1, 2, 3, 4, 5}
    slice2 := append(slice1, 6, 7, 8)
    fmt.Println(slice2) // Output: [1 2 3 4 5 6 7 8]
}

但是,请注意,append()函数并不会修改原切片。它将返回一个新切片,其中包含原切片的所有元素以及添加的值。

使用“...”运算符向切片添加元素

在Go中,可以使用“...”运算符将一个切片中的所有元素添加到另一个切片中。

package main

import "fmt"

func main() {
    slice1 := []int{1, 2, 3, 4, 5}
    slice2 := []int{6, 7, 8}
    slice1 = append(slice1, slice2...)
    fmt.Println(slice1) // Output: [1 2 3 4 5 6 7 8]
}

在以上代码中,slice2中的元素被添加到了slice1中。

修改原切片

在某些情况下,我们必须修改原切片。为了实现这个目标,我们需要使用append()函数的另一种形式。

package main

import "fmt"

func main() {
    slice := []int{1, 2, 3, 4, 5}
    slice = append(slice, 0)
    copy(slice[2:], slice[1:])
    slice[1] = 6
    fmt.Println(slice) // Output: [1 6 2 3 4 5 0]
}

在以上示例中,我们首先将一个新元素添加到了切片中。然后,我们使用copy()函数从位置2开始复制原切片中的所有元素到新切片中。最后,我们将在位置1修改切片的值为6。

结论

以上是向切片中添加元素的三种方法,您应该根据您具体的情况来选择最适合您的方法。使用append()函数是最常用的方法之一,但在某些情况下,您可能需要修改原切片,这时候可以使用copy()函数。