七叶笔记 » golang编程 » go的切片slice

go的切片slice

代码如下:

 package main

import "fmt"
func main() {
var s1 []int    //定义一个存放int元素的切片s1,切片的底层就是数组
var s2 []string //定义一个存放string元素的切片s2,切片的底层就是数组
fmt.Printf("s1是否与nil相等:%v\n", s1 == nil)
//初始化
s1 = []int{1, 2, 3}
s2 = []string{"沙河", "张江", "坂田"}
fmt.Printf("s1的长度:%d\n", len(s1))
fmt.Printf("s2的长度:%d\n", len(s2))
fmt.Printf("s1的第一个元素:%v\n", s1[0])
fmt.Printf("s2的第二个元素是:%v\n", s2[1])
fmt.Printf("s2的容量是:%v\n", cap(s2))
fmt.Printf("s1是否与nil相等:%v\n", s1 == nil)
a1 := []int{1, 2, 3, 4, 5, 6, 7, 8, 9}
a2 := a1[2:len(a1)] //中括号里的:前的包含,:后的不包含
fmt.Printf("a2:%v\n", a2)
a3 := a1[:4]
a4 := a1[3:6]
a5 := a1[:]
fmt.Printf("a3:%v\n", a3)
//cap代表从开始位置切割,到原始数组最后一个位置的长度
fmt.Printf("a4:%v,len(a4):%d,cap(a4):%d\n", a4, len(a4), cap(a4))
fmt.Printf("a5:%v\n", a5)
}  

运行结果如下:

PS E:\go\src\github.com\691194615@qq.com\studygo\day01\.vscode\.vscode\for04> go build slice01.go

PS E:\go\src\github.com\691194615@qq.com\studygo\day01\.vscode\.vscode\for04> .\slice01.exe

s1是否与nil相等:true

s1的长度:3

s2的长度:3

s1的第一个元素:1

s2的第二个元素是:张江

s2的容量是:3

s1是否与nil相等:false

a2:[3 4 5 6 7 8 9]

a3:[1 2 3 4]

a4:[4 5 6 7 8 9],len(a4):6,cap(a4):6

a5:[1 2 3 4 5 6 7 8 9]

PS E:\go\src\github.com\691194615@qq.com\studygo\day01\.vscode\.vscode\for04> go build slice01.go

PS E:\go\src\github.com\691194615@qq.com\studygo\day01\.vscode\.vscode\for04> .\slice01.exe

s1是否与nil相等:true

s1的长度:3

s2的长度:3

s1的第一个元素:1

s2的第二个元素是:张江

s2的容量是:3

s1是否与nil相等:false

a2:[3 4 5 6 7 8 9]

a3:[1 2 3 4]

a4:[4 5 6],len(a4):3,cap(a4):6

a5:[1 2 3 4 5 6 7 8 9]

图片示例如下:

#go,golang,slice,切片

相关文章