Go 数组

打印 上一主题 下一主题

主题 897|帖子 897|积分 2691

数组用于在单个变量中存储相同类型的多个值,而不是为每个值声明单独的变量。
声明数组
在Go中,有两种声明数组的方式:

  • 使用var关键字:
语法
var array_name = [length]datatype{values} // 这里定义了长度
或者
var array_name = [...]datatype{values} // 这里长度是隐含的

  • 使用:=符号:
语法
array_name := [length]datatype{values} // 这里定义了长度
或者
array_name := [...]datatype{values} // 这里长度是隐含的
注意:长度指定了数组中要存储的元素数量。在Go中,数组具有固定的长度。数组的长度可以通过一个数字来定义,也可以是隐含的(这意味着编译器根据值的数量来决定数组的长度)。
数组示例
这个示例声明了两个具有定义长度的数组(arr1和arr2):
  1. package main
  2. import "fmt"
  3. func main() {
  4.   var arr1 = [3]int{1, 2, 3}
  5.   arr2 := [5]int{4, 5, 6, 7, 8}
  6.   fmt.Println(arr1)
  7.   fmt.Println(arr2)
  8. }
复制代码
输出:
  1. [1 2 3]
  2. [4 5 6 7 8]
复制代码
示例
这个示例声明了两个隐含长度的数组(arr1和arr2):
  1. package main
  2. import "fmt"
  3. func main() {
  4.   var arr1 = [...]int{1, 2, 3}
  5.   arr2 := [...]int{4, 5, 6, 7, 8}
  6.   fmt.Println(arr1)
  7.   fmt.Println(arr2)
  8. }
复制代码
输出:
  1. [1 2 3]
  2. [4 5 6 7 8]
复制代码
示例
这个示例声明了一个字符串数组:
  1. package main
  2. import "fmt"
  3. func main() {
  4.   var cars = [4]string{"Volvo", "BMW", "Ford", "Mazda"}
  5.   fmt.Print(cars)
  6. }
复制代码
输出:
[Volvo BMW Ford Mazda]
访问数组元素
您可以通过引用索引号来访问特定的数组元素。
在Go中,数组索引从0开始。这意味着[0]是第一个元素,[1]是第二个元素,依此类推。
示例
这个示例展示了如何访问prices数组中的第一个和第三个元素:
  1. package main
  2. import "fmt"
  3. func main() {
  4.   prices := [3]int{10, 20, 30}
  5.   fmt.Println(prices[0])
  6.   fmt.Println(prices[2])
  7. }
复制代码
输出:
10
30
更改数组元素
您还可以通过引用索引号来更改特定数组元素的值。
示例
这个示例展示了如何更改prices数组中第三个元素的值:
  1. package main
  2. import "fmt"
  3. func main() {
  4.   prices := [3]int{10, 20, 30}
  5.   prices[2] = 50
  6.   fmt.Println(prices)
  7. }
复制代码
输出:
[10 20 50]
数组初始化
如果数组或其元素在代码中没有被初始化,它将被分配其类型的默认值。
提示:int的默认值是0,string的默认值是""。
示例
  1. package main
  2. import "fmt"
  3. func main() {
  4.   arr1 := [5]int{}           // 未初始化
  5.   arr2 := [5]int{1, 2}       // 部分初始化
  6.   arr3 := [5]int{1, 2, 3, 4, 5} // 全部初始化
  7.   fmt.Println(arr1)
  8.   fmt.Println(arr2)
  9.   fmt.Println(arr3)
  10. }
复制代码
输出:
[0 0 0 0 0]
[1 2 0 0 0]
[1 2 3 4 5]
仅初始化特定元素
也可以仅初始化数组中的特定元素。
示例
这个示例仅初始化数组的第二和第三个元素:
  1. package main
  2. import "fmt"
  3. func main() {
  4.   arr1 := [5]int{1: 10, 2: 40}
  5.   fmt.Println(arr1)
  6. }
复制代码
输出:
[0 10 40 0 0]
示例解释
上面的数组有5个元素。
1:10 表示:将10赋值给数组索引1(第二个元素)。
2:40 表示:将40赋值给数组索引2(第三个元素)。
查找数组的长度
使用len()函数可以找到数组的长度:
示例
  1. package main
  2. import "fmt"
  3. func main() {
  4.   arr1 := [4]string{"Volvo", "BMW", "Ford", "Mazda"}
  5.   arr2 := [...]int{1, 2, 3, 4, 5, 6}
  6.   fmt.Println(len(arr1))
  7.   fmt.Println(len(arr2))
  8. }
复制代码
输出:
4
6
最后

为了方便其他设备和平台的小伙伴观看往期文章,链接奉上:
公众号搜索Let us Coding知乎开源中国CSDN思否掘金InfoQ简书博客园慕课51CTOhelloworld腾讯开发者社区阿里开发者社区
看完如果觉得有帮助,欢迎点赞、收藏关注

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

使用道具 举报

0 个回复

倒序浏览

快速回复

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

本版积分规则

美丽的神话

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

标签云

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