Golang 将数组转换为切片
切片是一系列元素,就像数组一样。数组是一个固定的元素序列,而切片是一个动态数组,这意味着它的值不固定,可以改变。切片比数组更高效和更快速,而且它们是通过引用传递而不是值传递。
方法1:使用[:]
在这个方法中,我们将使用[:]对数组进行切片。将数组转换为切片后,我们将使用Golang中的print语句将输出打印到控制台。
步骤
- 第1步 - 创建一个main包,并在程序中声明fmt(格式化包)包,其中main产生可执行代码,fmt帮助格式化输入和输出。
-
第2步 - 创建一个具有固定常量值的数组,并放入一些值,以便将其转换为切片。
-
第3步 - 数组[:]的语法将数组转换为切片,并将值存储在名为myslice的切片中。
-
第4步 - 在程序执行时,将切片打印到控制台。
-
第5步 - 使用fmt.Println()函数执行打印语句,其中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:使用复制和创建函数
在这种方法中,一个函数将创建一个新的切片,其中的数组元素将使用复制函数进行复制,这也是一种内置函数。
语法
func copy(dst, str[] type) int
在Go语言中,copy函数用于将一个源数组的值复制到目标数组,并返回复制的元素数作为结果。它以两个数组作为参数。
func make ([] type, size, capacity)
在Go语言中,make函数用于创建数组/映射,它接受要创建的变量类型、大小和容量作为参数。
步骤
- 步骤1 - 在程序中创建一个package main并声明fmt(格式化包)包,其中main生成可执行代码,fmt帮助格式化输入和输出。
-
步骤2 - 在主函数中创建一个具有固定常量值的数组,并将一些值放入该数组中,这些值将被转换为切片。
-
步骤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 - 创建一个main包,并在程序中声明fmt(格式化包)包,其中main生成可执行代码,fmt帮助格式化输入和输出。
-
步骤2 - 在main函数内部创建一个具有固定常量值的数组,并在数组中放入一些值,这些值将被转换为切片。
-
步骤3 - 创建一个空切片,并使用for循环迭代数组的范围,在循环中将数组元素追加到切片中,直到循环结束。
-
步骤4 - 循环结束后,使用fmt.Println()函数在控制台上打印切片,ln表示换行。
示例
使用内置的append函数将数组转换为切片的示例中的Golang程序。
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函数。因此,程序成功地执行了。