Go语言入门3(数组)
  c7AEHW9VXsid 2023年11月02日 41 0
Go

数组

​ 数组是具有相同唯一类型的一组已编号且长度固定的数据项序列(这是一种同构的数据结构);这种类型可以是任意的原始类型例如整形、字符串或者自定义类型(结构体、接口)。数组长度也是数组类型的一部分,所以[5]int和[10]int是属于不同类型的。

⭐:在其他语言中数组大多是引用类型,但是在go语言中,数组是值类型

声明方式

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

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

数组使用

通过下标访问数组的元素

array := [10]int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
fmt.Println(arr[5])

遍历数组

array := [10]int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
// i:数组下标 j: 下标对应的值
for i, j := range arr {
    fmt.Printf("%d : %d \t", i, j)
}

数组赋值数组

​ 数组可以给同它数据类型,数组长度相同的数组赋值

var array [10]int
arr := [...]int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
array = arr

指针数组

​ 指针数组和数组本身差不多,只不过元素类型是指针

// 声明一个长度为10的整型指针数组
// 并在第5,6,7位上创建内存空间
arr := [10]*int{5:new(int),6:new(int),7:new(int)}
// 在第三位上创建内存空间
arr[3] = new(int)
// 在第三位上的内存空间里赋值为3
*arr[3] = 3
// 输出第三位对应的内存空间地址,以及值
fmt.Println(arr[3])
fmt.Println(*arr[3])

⭐:以上需要注意的是,只可以给第3,5,6,7位赋值,因为只有它们分配了内存,才可以赋值,如果我们给索引0赋值,运行的时候,会提示无效内存或者是一个nil指针引用。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  uGYzDadp0Cs7   2024年04月18日   78   0   0 Go
  hyrB1Ag4eVs8   2024年04月15日   69   0   0 Go
  dHUS172Lkv6A   2024年05月08日   174   0   0 Go
  YFCZjJLTjJgW   2024年05月04日   51   0   0 Go
  YFCZjJLTjJgW   2024年05月17日   59   0   0 Go
  uGYzDadp0Cs7   2024年04月16日   118   0   0 Go
  YFCZjJLTjJgW   2024年05月17日   59   0   0 Go
c7AEHW9VXsid