您的位置 首页 golang

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,切片

文章来源:智云一二三科技

文章标题:go的切片slice

文章地址:https://www.zhihuclub.com/98852.shtml

关于作者: 智云科技

热门文章

网站地图