Go语言程序将数组转换为切片


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

方法 1:使用 [:]

在这种方法中,我们将使用 [:] 来切片数组。将数组转换为切片后,我们将使用 Go 语言中的 print 语句在控制台上打印输出。

算法

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

  • 步骤 2 − 创建一个具有固定常量值的数组,并在该数组中放入一些要转换为切片的值。

  • 步骤 3 − 数组 [:] 语法将数组转换为切片并将值存储在名为 myslice 的切片中。

  • 步骤 4 − 在程序执行时在控制台上打印切片。

  • 步骤 5 − 使用 fmt.Println() 函数执行 print 语句,其中 ln 表示换行。

示例

在下面的示例中,我们将使用 [:] 在使用数组时进行切片

package main
import "fmt"
func main() {
   array := [4]int{10, 20, 30, 40} //create an array with four elements
   myslice := array[:]// Convert the array to a slice
   fmt.Println("The array converted to slice is presented here:")
   fmt.Println(myslice) //print the slice
}

输出

The array converted to slice is presented here:
[10 20 30 40]

方法 2:使用 Copy 和 Make 函数

在这种方法中,一个函数将创建一个新的切片,其中数组元素将使用 copy 函数复制,copy 函数也是一种内置函数。

语法

func copy(dst, str[] type) int

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

func make ([] type, size, capacity)

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

算法

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

  • 步骤 2 − 在 main 函数内部创建一个具有固定常量值的数组,并在该数组中放入一些要转换为切片的值。

  • 步骤 3 − 使用 make 函数创建一个空切片,其长度等于要将其元素复制到该切片的数组的长度。

  • 步骤 4 − 使用 copy 函数将数组的值复制到创建的新切片中,程序的目的得到满足。

  • 步骤 5 − 切片将使用 fmt.println() 函数打印到屏幕上,其中 ln 表示换行。

示例

在下面的示例中,我们使用 copy 和 make 函数将数组转换为切片

package main
import "fmt"
func main() {
   // Declare an array of integers with 5 elements
   array := [4]int{10, 20, 30, 40}
   
   // Convert the array to a slice using the make function
   myslice := make([]int, len(array))
   copy(myslice, array[:])
   fmt.Println("The array after converted to slice is presented as:")
   fmt.Println(myslice) //print slice
}

输出

The array after converted to slice is presented as:
[10 20 30 40]

方法 3:使用 Append() 函数

在这种方法中,我们将使用 for 循环中内置的 append 函数将数组转换为切片,以将数组元素追加到切片中。输出将使用 Go 语言中的 print 语句在控制台上打印。

语法

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

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

算法

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

  • 步骤 2 − 在 main 函数内部创建一个具有固定常量值的数组,并在该数组中放入一些要转换为切片的值。

  • 步骤 3 − 创建一个空切片,并使用 for 循环遍历数组的范围,在循环中将数组元素追加到切片中,并一直重复直到循环终止。

  • 步骤 4 − 循环终止后,使用 fmt.Println() 函数在控制台上打印切片,其中 ln 表示换行。

示例

示例中使用内置 append 函数将数组转换为切片的 Go 语言程序

package main
import "fmt"
func main() {
   array := [4]int{10, 20, 30, 40} //create an array of size 4
   var myslice []int
   for _, element := range array {
      myslice = append(myslice, element) //run a for loop to append elements
   }
   
   // Print the slice
   fmt.Println("The array after being converted to slice is:")
   fmt.Println(myslice) //print slice
}

输出

The array after being converted to slice is:
[10 20 30 40]

结论

在上面的程序中,我们使用了三个示例将数组转换为切片。在第一个示例中,我们在方法中使用了一个语法将数组转换为切片。在第二个示例中,我们使用 make 函数执行程序,在第三个示例中,我们使用 append 函数。因此,程序成功执行。

更新于: 2023年2月13日

3K+ 浏览量

启动你的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.