go语言数组
数组是一个由固定长度 的特定类型元素 组成的序列,一个数组可以由零个或多个元素组成。数组是值类型 定义数组:1.var 数组变量名 [元素数量]Type2. var a [5]int // 定义五个整数的数组
fmt.Println(a[0]) // 打印第一个元素
fmt.Println(a[len(a)-1]) // 打印最后一个元素
数组的每个元素都可以通过索引下标来访问,索引下标的范围是从0开始到数组长度减1的位置,内置函数 len() 可以返回数组中元素的个数。 package main import "fmt" func main() { intarraty:=[5]int{1,2,3,4,5} fmt.Println(intarraty) fmt.Println(intarraty[1]) fmt.Println(intarraty[2]) var intArrray2 [5]int intArrray2=[5]int{6,7,8,9,10} fmt.Println(intArrray2) for i:=0;iintarry[i]{ min=intarry[i] //循环每一次保留最小值 } if maxintarry[i]{ min=intarry[i] //循环每一次保留最小值 } if maxintarry[i]{ min=intarry[i] //循环每一次保留最小值 } if maxintarray[i+1]{ intarray[i],intarray[i+1]=intarray[i+1],intarray[i] } } fmt.Println(intarray) } fmt.Println("最终的结果:",intarray) } //输出结果 abc$ go run main.go 原始数据: [1 9 2 7 3 8 4 6] [1 2 7 3 8 4 6 9] [1 2 3 7 4 6 8 9] [1 2 3 4 6 7 8 9] [1 2 3 4 6 7 8 9] [1 2 3 4 6 7 8 9] [1 2 3 4 6 7 8 9] [1 2 3 4 6 7 8 9] 最终的结果: [1 2 3 4 6 7 8 9]
12.数组做函数的参数package main import "fmt" func change(a [5]int){ //数组作为参数,具备副本机制 a[0]=100 fmt.Println("函数change的a:",a) fmt.Println("函数change &a[0]:",&a[0]) } func main(){ var a =[...]int{1,2,3,4,5} change(a) fmt.Println("main的函数a",a) fmt.Println("main的函数&a[0]",&a[0]) } //输出结果 abc$ go run main.go 函数change的a: [100 2 3 4 5] 函数change &a[0]: 0xc0000ac060 main的函数a [1 2 3 4 5] main的函数&a[0] 0xc0000ac030 //进阶版 package main import "fmt" func change(a *[5]int){ //数组作为参数,具备副本机制 a[0]=100 fmt.Println("函数change的a:",*a) fmt.Println("函数change &a[0]:",&a[0]) } func main(){ var a =[...]int{1,2,3,4,5} change(&a) fmt.Println("main的函数a",a) fmt.Println("main的函数&a[0]",&a[0]) } //输出结果 abc$ go run main.go 函数change的a: [100 2 3 4 5] 函数change &a[0]: 0xc0000181b0 main的函数a [100 2 3 4 5] main的函数&a[0] 0xc0000181b0
13.二维数组:赋值和地址package main import "fmt" func main(){ a1:=[3][4]int{{1,2,3,4},{5,6,7,8},{9,10,11,12}} for i:=0;i<3;i++{ //3行 fmt.Println(a1[i]) for j:=0;j<4;j++{ //4列 fmt.Printf("%3d %x",a1[i][j],&a1[i][j]) } fmt.Println() } } //输出结果 abc$ go run main.go [1 2 3 4] 1 c00008c060 2 c00008c068 3 c00008c070 4 c00008c078 [5 6 7 8] 5 c00008c080 6 c00008c088 7 c00008c090 8 c00008c098 [9 10 11 12] 9 c00008c0a0 10 c00008c0a8 11 c00008c0b0 12 c00008c0b8 //版本2 package main import "fmt" func main(){ a2:=[...][4]int{1:{1,2,3,4},2:{5,6,7,8}} //默认都是0 for i:=0;i<3;i++{ //3行 fmt.Println(a2[i]) for j:=0;j<4;j++{ //4列 fmt.Printf("%3d %x",a2[i][j],&a2[i][j]) } fmt.Println() } } //输出结果 abc$ go run main.go [0 0 0 0] 0 c00008c060 0 c00008c068 0 c00008c070 0 c00008c078 [1 2 3 4] 1 c00008c080 2 c00008c088 3 c00008c090 4 c00008c098 [5 6 7 8] 5 c00008c0a0 6 c00008c0a8 7 c00008c0b0 8 c00008c0b8
14.二维数组:打印和输出package main import "fmt" func main(){ a:=[...][4]int{1:{1,2,3,4},2:{5,6,7,8}} //默认都是0 for i,v:=range a{ for j,value:=range v{ //v一维数组 fmt.Printf("a[%d][%d]=%v ",i,j,value) } fmt.Println("") } } //输出结果 abc$ go run main.go a[0][0]=0 a[0][1]=0 a[0][2]=0 a[0][3]=0 a[1][0]=1 a[1][1]=2 a[1][2]=3 a[1][3]=4 a[2][0]=5 a[2][1]=6 a[2][2]=7 a[2][3]=8
15.指针数组,每一个元素都是地址 package main import "fmt" func changeArrays(b [3]*int){ *b[0]=100 } func main(){ var a [3]int=[3]int{1,2,3} var b [3]*int=[3]*int{&a[0],&a[1],&a[2]} //指针数组,每一个元素都是地址 changeArrays(b) fmt.Println(a,b) } //输出结果 abc$ go run main.go [100 2 3] [0xc000138020 0xc000138028 0xc000138030]
17.数组的内存分配package main import ( "fmt" "time" "unsafe" ) func main(){ //fatal error: out of memory VirtualAlloc of 955514880000 bytes // failed with errno=1455 var vedio [55514880000]int fmt.Println(unsafe.Sizeof(vedio)) //内存分配到栈上,函数运行完成,内存自动回收 //堆 内存,栈1M-10M } func main1(){ //fatal error: out of memory VirtualAlloc of 955514880000 bytes failed with errno=1455 //var vedio [955514880000]int var vedio=new ([5551488000]int ) //内存分配到堆,golang自动回收内存 time.Sleep(time.Second*1) fmt.Println(unsafe.Sizeof(vedio)) //堆 内存,栈1M-10M //长期使用,内存较大,new, 堆 //短期使用,内存较小,栈 }
比特币的运行机制及与区块链的联系佚名每一笔比特币交易,都会被区块链网络中的节点记录下来,以此增强交易公信力,保护交易双方利益。但如果所有节点都参与记录的话,容易因为网络延迟等因素造成账本信息不一致,也难以避免记账
薇娅带货翻车,二驴夫妇卖假手机被点名,网红最近怎么了?众所周知,直播带货是最近几年才兴起的一个行业,在几年前,直播行业并没有普及,人们对网络直播买东西这种行为信任度不高,不过随着互联网不断发展,人们体会到了直播带货的便利之处,大家不仅
1499元起售,RedmiNote10Pro香在哪里?这里概括了3点给你1499元究竟能够买到一款什么样的手机?如果按照过去的标准,可能能够买到的就是一款搭载了入门级芯片普通屏幕普通三摄以及平均容量电池的手机罢了,毕竟1500元也称不上什么高端旗舰手机
盒马自主研发智慧价签6月上新看一眼价签就知何时上架近日,盒马的电子价签在社交网络上引发关注。但盒马相关负责人表示,电子价签的一秒变价打折提醒等功能早已不新鲜。6月起,盒马将在全国门店陆续启用新型的智慧价签,智多项服务功能也将全新上
iOS14。5升级14。6体验,网速慢了?晚上没忍住,从14。5升了14。6因为之前看过别人说网速变慢了我也去测了一下果不其然!!在腾讯手机管家测的以前不管是独立5g还是混合的轻轻松松上40ms状态好的时候是50刚刚混合的
红米5G概念新机,骁龙870和144Hz高刷屏加持,整机设计真漂亮红米手机是小米旗下的子品牌手机,随着小米手机近几年的发展进步,红米手机的进步也是非常明显的,红米手机通过极致的性价比,拥有着非常不错的口碑,并且用户量也是非常之多。目前红米手机靠着
手机淘宝改名了网商君618前,手机淘宝宣布,正式改名为淘宝。目前在AppStore安卓应用商店华为应用商店等,原来手机淘宝APP的名称已经变成淘宝。据悉,这是淘宝推出移动端以来的首次改名。淘宝A
京东自营是否有假货?如何分辨?很多小伙伴都非常信赖京东自营店,因为大家觉得自营店他的货源渠道是非常可靠的,相对来说假货没那么多,但是万事没有绝对,大家还是还是想知道京东自营店是否会卖假货?京东自营是否有假货?首
快讯顺丰回应UU跑腿发文斥其帮排队抄袭不予回应财经网科技5月29日讯,据UU跑腿官博消息,近日,UU跑腿发布了关于对顺丰同城急送产品及设计团队发展的几条建议喊话顺丰,称顺丰同城急送小程序新上线的帮排队功能,其名称介绍文案图标设
RedmiNote10的隐喻小米加速超越苹果?王如晨文RedmiNote10系列赶在小米集团2021Q1财报前发布,有较深用意。那就是,在一项出色的季报之后,进一步对外传递增长信号。而且,这轮增长,不仅事关小米全球市占与地位,
币圈惊魂100天那些暴富暴跌爆仓的人深燃(shenrancaijing)原创作者周继凤编辑黎明爆仓了,亏完了,我现在不持有任何加密货币了。一位投资了比特币和狗狗币的币圈玩家,在经历了5月19日的加密货币集体暴跌后,亏