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


在本教程中,我们将学习如何使用不同的示例向切片添加元素。切片就像数组一样,是一系列元素的序列。数组是固定长度的元素序列,而切片是动态数组,这意味着它的值不是固定的,可以更改。切片比数组更高效、更快,而且它们是按引用传递而不是按值传递。让我们通过示例来理解。

方法 1:使用 append 函数添加字符串

在这种方法中,我们将使用 append 函数向切片添加字符串元素。我们使用了 append 函数,这是一个内置函数,其功能如下所述。让我们来看一下它是如何执行的。

语法

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

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

算法

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

  • 步骤 2 − 创建一个 main 函数,在该函数中创建一个名为 countries 的切片,并在控制台上打印它。

  • 步骤 3 − 现在使用 append 函数向切片添加新的字符串元素,并将此赋值给名为 new_countries 的变量。

  • 步骤 4 − 使用 fmt.Println() 函数(其中 ln 指的是换行)在控制台上打印 new_countries 中存储的值。

示例

使用 append 函数向切片添加字符串元素的 Go 语言程序

package main
import "fmt"
func main() {
           
   // create a slice of type string
   Countries := []string{"Iceland", "Switzerland"}
   fmt.Println("The slice before adding of elements is:", Countries)
           
   // append new elements and old slice in new slice
   new_countries := append(Countries, "Canada", "Italy")
   fmt.Println("The new slice after adding elements is:")
   fmt.Println(new_countries) // print new slice
}

输出

The slice before adding of elements is: [Iceland Switzerland]
The new slice after adding elements is:
[Iceland Switzerland Canada Italy]

方法 2:使用 copy 函数

语法

在这种方法中,我们将使用 copy 函数向切片添加元素。copy 函数是一个内置函数,其功能如下所述。让我们学习执行程序所需的步骤。

func copy(dst, str[] type) int 

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

算法

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

  • 步骤 2 − 创建一个 main 函数,在该函数中创建一个名为 countries 的切片,并在控制台上打印它。

  • 步骤 3 − 创建另一个字符串类型的切片,并将它的内容复制到旧切片。

  • 步骤 4 − 使用 fmt.Println() 函数在屏幕上打印元素复制后旧切片的内容。

示例

使用 copy 函数向切片添加元素的 Go 语言程序

package main
import "fmt"
func main() {
         
   // create a slice of type string
   countries := []string{"Canada", "Italy"}
   fmt.Println("The slice before adding element is:", countries)
   morecountries := []string{"Finland", "Switzerland"}

   // create a new slice to copy the elements of slice
   new_slice := copy(countries, morecountries)
   fmt.Println("The slice after adding element in slice is:")
   fmt.Println("The new slice we created has", new_slice, "elements->", countries)
}

输出

The slice before adding element is: [Canada Italy]
The slice after adding element in slice is:
The new slice we created has 2 elements-> [Finland Switzerland]

方法 3:使用 append 函数添加整数值

在这种方法中,我们将使用 append 函数向切片添加整数元素。我们使用了 append 函数,这是一个内置函数,其功能如下所述。让我们来看一下它是如何执行的。

语法

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

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

算法

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

  • 步骤 2 − 创建一个 main 函数,在该函数中创建一个名为 numbers 的切片,并在控制台上打印它。

  • 步骤 3 − 现在使用 append 函数向切片添加新的整数元素,并将此赋值给名为 new_numbers 的变量。

  • 步骤 4 − 使用 fmt.Println() 函数(其中 ln 指的是换行)在控制台上打印 new_numbers 中存储的值。

示例

package main
import "fmt"
func main() {

   // create a slice of type int
   numbers := []int{1, 2}
   fmt.Println("The slice before adding of elements is:", numbers)

   // append new elements in the slice
   new_numbers := append(numbers, 3, 4) 
   fmt.Println("The new slice after adding elements is:")

   // print new slice
   fmt.Println(new_numbers)  
}

输出

The slice before adding of elements is: [1 2]
The new slice after adding elements is:
[1 2 3 4]

结论

我们通过三个示例执行了向切片添加元素的程序。在第一个示例中,我们使用 append 函数添加字符串元素;在第二个示例中,我们使用 copy 函数添加值;在第三个示例中,我们使用 append 函数添加整数元素。这两个示例给出类似的输出。因此,程序成功执行。

更新于:2023年1月17日

浏览量 1K+

开启您的职业生涯

完成课程获得认证

开始学习
广告