golang 数组

waynehu · · 8266 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

声明数组

简单声明数组

//声明一个2个元素的数组,名字为shuzu1,因为是int型数组,所以初值为0,即[0,0]
var shuzu1 [2]int
//声明一个2个元素的数组,名字为shuzu2,并同时赋初值,{}里为空,说明没有赋初值,等同于上面
shuzu2 := [2]int{}

声明数组并同时赋初值

//声明一个2个元素的数组,名字为shuzu3, shuzu3_1, shuzu3_2,并同时赋初值,结果均为[1,2]
shuzu3 := [2]int{1,2}
//{}里的冒号左边是下标,右边是值
shuzu3_1 := [2]int{0:1,1:2}
shuzu3_2 := [2]int{1:2,0:1}

声明数组并同时赋初值,并自动计算长度

//不指定数组长度,自动计算长度, [...]
//声明一个2个(自动计算而来)元素的数组,名字为shuzu4,并同时赋初值,结果为[1,2]
shuzu4 := [...]int{1,2}
//声明一个4个(自动计算而来)元素的数组,名字为shuzu5,并同时赋初值,结果为[0,0,0,9]
shuzu5 := [...]int{3:9}

[指向]数组的指针

声明一个指针,该指针指向一个数组

//声明一个指向数组的指针,该数组声明有2个元素,名字为p_shuzu1,因为是指向int型数组,所以初值为0,即&[0,0]
var p_shuzu1 *[2]int
//声明一个指向数组的指针,该数组声明有2个元素,名字为p_shuzu2,数组初值为[1,2],即指针为&[1,2]
p_shuzu2 := *[2]int{1,2}

new一个数组

new出来的数组,返回的是数组的指针

//声明一个指向数组的指针,该数组声明有2个元素,名字为p_shuzu1,因为是指向int型数组,所以初值为0,即&[0,0]
var p_shuzu1 *[2]int
//p_shuzu1和p_shuzu2是等价的,只是p_shuzu2是new出来的
p_shuzu2 := new([2]int)

[存放]指针的数组

引子,和数组无关,和int型与int型指针有关

//声明一个int型
i := 1
//声明一个指向int型的指针p
p := &i

引子,声明一个数组,该数组存放着–int型数字

//如果有多个int型数字,可以用int型数组来整合,数组里全部都是int型
i := 2
j := 3
shuzu1 := [2]int{i,j}
fmt.Println(shuzu1)    //[2,3]

声明一个(用来存放int指针)的数组

//如果有多个指向int型的指针,就可以用(int型指针)的数组来整合,数组里全部是指针,且全部是int型指针(这些指针都指向一个个int型)
i := 2
ip := &i
j := 3
jp := &j
shuzu1_p := [2]*int{ip,jp}
fmt.Println(shuzu1_p)    //[0x34352423,0x47845392],打印出的是地址值

有疑问加站长微信联系(非本文作者)

本文来自:开源中国博客

感谢作者:waynehu

查看原文:golang 数组

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

8266 次点击  
加入收藏 微博
1 回复  |  直到 2000-01-01 00:00:00
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传