微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

golang 数组切片和字典

golang语言的数组 切片和字典

packagemain
import(
"fmt"
)

funcmain(){
vara[10]int//定义一个数字长度为10,存储int类型
a[0]=10//存储
a[1]=20
a[2]=30
a[3]=40
fmt.Println(a[0],a[1],a[2],a[3])//通过序列打印
fmt.Println(a)//打印整个数组,因为定义长度为10,而我们只存了4个,所有后面的部分将以零值填充。
//运行结果

10203040
[10203040000000]
//初始化并赋值
num:=[5]int{1,2,3,4,5}//初始化并赋值
fmt.Println(num)

//数组遍历
fori,value:=rangenum{//索引和值
fmt.Println(value,i)
}

//数组定义时可不定义切片大小
sliceOne:=[]int{1,5}
fmt.Println(sliceOne[0],sliceOne[1],sliceOne[2])

//通过开始索引和结束索引创建一个新的切片
sliceTwo:=sliceOne[1:3]//返回sliceOne中索引1到索引3,但不包含3
fmt.Println(sliceTwo)//运行结果:[23]

//可省略开始索引,省略表示从索引0开始
fmt.Println(sliceOne[:3])//返回索引0-索引3,不包含3

//可省略结束索引,省略表示直到最后一个
fmt.Println(sliceOne[1:])//打印索引1到最后,全部被打印出来运行结果:[2345]

//同事省略开始和结束表示复制全部切片
fmt.Println(sliceOne[:])

//使用make初始化并设定长度与容量
sliceThree:=make([]int,5,10)//表示初始化一个切片,长度为5,最大容量为10,即在内存中申请了能放置10个长度的空间,这样在有新元素插入的时候就不用再动态分配空间提高效率。
fmt.Println(sliceThree)//运行结果:[00000]

//使用len和cap查看切片的长度和容量
fmt.Println(len(sliceThree))
fmt.Println(cap(sliceThree))//运行结果:510

//使用append来追加元素
sliceThree=append(sliceThree,4)
fmt.Println(sliceThree)//运行结果:[000001234]

//字典map
//使用make来创建map
m:=make(map[string]int)//定义建值为字符串,值为整型
m["first"]=1
fmt.Println(m["first"])//运行结果:1
m["first"]=2
fmt.Println(m["first"])//运行结果:2
//使用len获取map长度
fmt.Println(len(m))//运行结果:1

//检查map中是否包含某个建值
v,ok:=m["third"]//如果包含建值third那么,v等于third对应的值,ok为true,否则v为零值,ok为false
fmt.Print(v,ok)//运行结果:0false

//delete删除map中的建值对
delete(m,"first")
fmt.Println(m)

//创建的时候初始化
varmp=map[string]int{
"first":1,"second":2,}

//字典嵌套
outer:=map[string]map[string]int{
"inner1":map[string]int{
"first":1,}
"inner2":map[string]int{
"first":3,"second":4,}
}
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐