Golang 将Slice转换为数组
Slice也可以被称为动态数组,因为其值是动态的,而普通数组是静态的。这使得Slice更有效率和更快速。它们是通过引用传递而不是值传递。在这里,我们将通过各种示例学习将Slice转换为数组的不同技巧。
语法
func append(slice, element_1, element_2…, element_N) []T
append函数用于将值添加到数组切片中。它接受多个参数。第一个参数是要添加值的数组,后面跟着要添加的值。然后,该函数返回包含所有值的最终数组切片。
func copy(dst, str[] type) int
go语言中的copy函数用于将一个源数组的值复制到目标数组,并返回复制的元素数量作为结果。它以两个数组作为参数。
步骤
- 步骤1 - 创建一个main包,并在程序中声明fmt(格式化包)包,其中main生成可执行代码,fmt帮助格式化输入和输出。
-
步骤2 - 创建一个切片,并使用append函数向切片中添加一些值。
-
步骤3 - 初始化一个具有大小的数组,以便将值复制到其中。
-
步骤4 - 使用copy函数将切片的元素复制到数组中。
-
步骤5 - 使用fmt.Println()函数在控制台上打印数组,其中ln表示换行。
示例1
在这个示例中,我们将学习如何使用内置函数copy将切片转换为数组。这里,我们将切片元素复制到创建的数组中。让我们深入代码和算法,看看它是如何完成的。
package main
import "fmt"
//create main function to execute the program
func main() {
var slice []int // initialize slice
slice = append(slice, 10) //fill the slice using append function
slice = append(slice, 20)
slice = append(slice, 30)
// Convert the slice to an array
array := [3]int{} //initialized an empty array
copy(array[:], slice) //copy the elements of slice in newly created array
fmt.Println("The slice is converted into array and printed as:")
fmt.Println(array) // prints the output: [10 20 30]
}
输出
The slice is converted into array and printed as:
[10 20 30]
示例2
在这个示例中,我们将看到如何使用for循环将切片转换为数组。切片的元素将被赋值给数组。让我们通过代码来明确我们的概念。
package main
import "fmt"
//create main function to execute the program
func main() {
var slice []int // initialize slice
slice = append(slice, 10) //fill the slice using append function
slice = append(slice, 20)
slice = append(slice, 30)
// Convert the slice to an array
var array [3]int
for i, element := range slice {
array[i] = element // store slice elements in the newly created array
}
fmt.Println("The array is printed after conversion from slice:")
fmt.Println(array) // prints the output: [1 2 3]
}
输出
The array is printed after conversion from slice:
[10 20 30]
结论
在上述程序中,我们使用了两个示例来将切片转换为数组。在第一个示例中,我们使用了copy函数来获取一个数组。在第二个示例中,我们使用了for循环和两个内置函数-append和copy。Append用于在切片中添加元素。因此,程序成功执行。