Go语言入门3(数组)

打印 上一主题 下一主题

主题 888|帖子 888|积分 2664

数组

​        数组是具有相同唯一类型的一组已编号且长度固定的数据项序列(这是一种同构的数据结构);这种类型可以是任意的原始类型例如整形、字符串或者自定义类型(结构体、接口)。数组长度也是数组类型的一部分,所以[5]int和[10]int是属于不同类型的。
⭐:在其他语言中数组大多是引用类型,但是在go语言中,数组是值类型
声明方式


  • var + 数组名 + [数组长度] + 数组数据类型(数组内部初始化全为0)
  1. // 声明一个长度为10的整型数组array,并初始化
  2. var array [10]int
  3. array = [10]int {0,1,2,3,4,5,6,7,8,9}
复制代码

  • 数组名 + ":=" + [数组长度] + 数据类型 + {数组初始化}
  1. // 声明一个长度为10的整型数组array并进行初始化
  2. array := [10]int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
  3. // 初始化过程也可以单独初始化特定的位数(用逗号连接)
  4. // 声明一个长度为10的整型数组array并对数组的第5位进行初始化值为4,第3位进行初始化值为2
  5. array := [10]int{5:4,3:2}
复制代码

  • 数组名 + ":=" + [...] + 数据类型 + {数组初始化}("..."可以自动判断数组长度)
  1. // 声明一个长度为10的整型数组array并进行初始化
  2. array := [...]int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
复制代码
数组使用

通过下标访问数组的元素
  1. array := [10]int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
  2. fmt.Println(arr[5])
复制代码
遍历数组
  1. array := [10]int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
  2. // i:数组下标 j: 下标对应的值
  3. for i, j := range arr {
  4.     fmt.Printf("%d : %d \t", i, j)
  5. }
复制代码
数组赋值数组
​        数组可以给同它数据类型,数组长度相同的数组赋值
  1. var array [10]int
  2. arr := [...]int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
  3. array = arr
复制代码
指针数组

​        指针数组和数组本身差不多,只不过元素类型是指针
  1. // 声明一个长度为10的整型指针数组
  2. // 并在第5,6,7位上创建内存空间
  3. arr := [10]*int{5:new(int),6:new(int),7:new(int)}
  4. // 在第三位上创建内存空间
  5. arr[3] = new(int)
  6. // 在第三位上的内存空间里赋值为3
  7. *arr[3] = 3
  8. // 输出第三位对应的内存空间地址,以及值
  9. fmt.Println(arr[3])
  10. fmt.Println(*arr[3])
复制代码
⭐:以上需要注意的是,只可以给第3,5,6,7位赋值,因为只有它们分配了内存,才可以赋值,如果我们给索引0赋值,运行的时候,会提示无效内存或者是一个nil指针引用。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

缠丝猫

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表