Go语言基础切片的创建及初始化示例详解
什么是切片
切片是 Go 语言中一个重要的数据类型,它与数组非常相似,但是切片的长度是可以动态变化的。切片是由指向底层数组的指针、长度和容量三部分组成的。
切片的创建
使用 make 函数创建
make 函数是 Go 语言中用于创建切片、字典和信道等动态数据结构的内置函数。make 函数的第一个参数表示需要创建的类型,第二个参数表示切片的长度,第三个参数表示切片的容量。
示例代码:
package main
import "fmt"
func main() {
slice := make([]int, 5, 10)
fmt.Printf("len=%d cap=%d slice=%v\n", len(slice), cap(slice), slice)
}
输出:
len=5 cap=10 slice=[0 0 0 0 0]
直接创建切片
切片也可以直接通过对数组或其他切片进行切片操作来创建。
示例代码:
package main
import "fmt"
func main() {
arr := [10]int{1,2,3,4,5,6,7,8,9,0}
slice1 := arr[2:7]
slice2 := slice1[1:4]
fmt.Println(slice1)
fmt.Println(slice2)
}
输出:
[3 4 5 6 7]
[4 5 6]
切片的初始化
使用字面量初始化
切片可以通过字面量进行初始化。切片字面量的格式和数组字面量的格式相似,只不过没有固定的长度。切片字面量的语法格式为 []T{a, b, c, ...}
。
示例代码:
package main
import "fmt"
func main() {
slice := []int{1, 2, 3, 4, 5}
fmt.Printf("len=%d cap=%d slice=%v\n", len(slice), cap(slice), slice)
}
输出:
len=5 cap=5 slice=[1 2 3 4 5]
使用 for 循环初始化
切片也可以通过 for 循环来进行初始化。
示例代码:
package main
import "fmt"
func main() {
slice := make([]int, 5)
for i:=0; i<5; i++ {
slice[i] = i+1
}
fmt.Printf("len=%d cap=%d slice=%v\n", len(slice), cap(slice), slice)
}
输出:
len=5 cap=5 slice=[1 2 3 4 5]
以上是切片的创建及初始化的两种常见方式,希望可以对初学者有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Go语言基础切片的创建及初始化示例详解 - Python技术站