Go语言程序合并两个切片


在 Go 语言中,切片就像数组一样,是一系列元素的序列。数组是一系列固定元素的序列,而切片是动态数组,这意味着它的值不是固定的,可以更改。切片比数组更有效率和更快,此外它们是通过引用传递而不是通过值传递。

语法

func append(slice, element_1, element_2…, element_N) []T

append 函数用于向数组切片添加值。它接受多个参数。第一个参数是要向其添加值的数组,后跟要添加的值。然后,该函数返回包含所有值的最终数组切片。

func make ([] type, size, capacity)

Go 语言中的 make 函数用于创建数组/映射,它接受要创建的变量类型、其大小和容量作为参数

func copy(dst, str[] type) int

Go 语言中的 copy 函数用于将一个源数组的值复制到目标数组,并将复制的元素数量作为结果返回。它以两个数组作为参数。

算法

  • 步骤 1 − 创建一个包 main 并声明 fmt(格式化包)包在程序中,其中 main 生成可执行代码,fmt 有助于格式化输入和输出。

  • 步骤 2 − 创建一个函数 main,并在该函数中创建一个切片 slice1 并用一些值填充它。

  • 步骤 3 − 创建另一个切片 slice2 并用一些值填充它,以便它可以与 slice1 合并。

  • 步骤 4 − 使用 append 函数将 slice1 和 slice2 合并到 slice3 中,并在控制台上打印此新切片。

  • 步骤 5 − 这里 .. 表示 slice2 的元素作为单个参数而不是单个切片传递。

  • 步骤 6 − 使用 fmt.Println() 函数在控制台上执行打印语句,其中 ln 表示换行符。

示例 1

在本例中,我们将学习如何使用 append 函数(一种内置函数)合并两个切片。将创建两个切片,并将它们附加到一个切片中,该切片将在控制台上打印出来。让我们通过算法和代码来理解它。

package main
import "fmt"
func main() {
   slice1 := []int{10, 20, 30} //create slice1
   fmt.Println("The elements of slice1 are:", slice1)
   slice2 := []int{40, 50, 60} //create slice2
   fmt.Println("The elements of slice2 are:", slice2)
   slice3 := append(slice1, slice2...) //append slice1 and slice2
   fmt.Println(slice3) //print the slice3 which contains both slice1 and slice2
}

输出

The elements of slice1 are: [10 20 30]
The elements of slice2 are: [40 50 60]
[10 20 30 40 50 60]

示例 2

在本例中,我们将学习如何使用 copy 函数合并两个切片。在这里,我们将创建两个切片,并使用内置函数将它们的元素复制到另一个切片中。让我们通过算法和代码来理解它。

package main
import "fmt"
func main() {
   myslice1 := []int{10, 20, 30} //create slice1
   fmt.Println("The elements of slice1 are:", myslice1)
   myslice2 := []int{40, 50, 60} //create slice2
   fmt.Println("The elements of slice2 are:", myslice2)
   myslice3 := make([]int, len(myslice1)+len(myslice2))
   copy(myslice3, myslice1)
   copy(myslice3[len(myslice1):], myslice2)
   fmt.Println("The elements of slice3 after the elements of above two slices merged are:")
   fmt.Println(myslice3) //print new slice with elements of both slice1 and slice2
}

输出

The elements of slice1 are: [10 20 30]
The elements of slice2 are: [40 50 60]
The elements of slice3 after the elements of above two slices merged are:
[10 20 30 40 50 60]

示例 3

在本例中,我们将使用 for 循环中的 append 函数合并两个切片。在本例中将创建两个切片,并在其中一个中合并元素。让我们深入了解算法和代码,看看它是如何完成的。

package main
import "fmt"
func main() {
   myslice1 := []int{10, 20, 30} //create slice1
   fmt.Println("The elements of slice1 are:", myslice1)
   myslice2 := []int{40, 50, 60} //create slice2
   fmt.Println("The elements of slice2 are:", myslice2)
   fmt.Println("The slice after its elements merged are:")
   for _, element := range myslice2 {
      myslice1 = append(myslice1, element) //using append function append slices
   }
   fmt.Println(myslice1) //print slice1
}

输出

The elements of slice1 are: [10 20 30]
The elements of slice2 are: [40 50 60]
The slice after its elements merged are:
[10 20 30 40 50 60]

结论

我们使用三个示例执行了合并两个切片的程序。在第一个示例中,我们使用 append 函数合并两个切片。在第二个示例中,我们使用 copy 函数合并切片,在第三个示例中,我们使用带有 append 函数的 for 循环。这两个函数都是内置函数。因此,程序成功执行。

更新于: 2023年2月13日

5K+ 次浏览

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告