Go 语言的数组使用 - Go语言中文社区

Go 语言的数组使用


数组简介

  • 固定长度,不能动态改变
  • 元素类型相同
  • 内存连续分配

声明数组

// 声明了一个长度为10的整型数组,所有元素都被自动赋值为0
var nums [10]int

// 或声明同时赋值
nums := [10]int{1, 2, 3, 4}

// 或自动识别数组长度
nums := [...]int{1,2,3,4,5,6,7,8,9,10}

// 或声明同时通过索引赋值
nums := [10]int{1:10, 3:10}

访问数组元素

//获取索引为2的值
nums[2]
//修改索引为2的值
nums[2] = 10

数组赋值

a := [3]int{5, 78, 8}
var b [5]int
//not possible since [3]int and [5]int are distinct types
b = a

a := [3]int{5, 78, 8}
var b [3]int
// 成功
b = a

值传递

a := [...]string{"USA", "China", "India", "Germany", "France"}
b := a
b[0] = "Singapore"

// a is [USA China India Germany France]  
fmt.Println("a is ", a)

// b is [Singapore China India Germany France]  
fmt.Println("b is ", b) 

数组长度

a := [...]float64{67.7, 89.8, 21, 78}
fmt.Println("length of a is:", len(a))

遍历数组

for i := 0; i < len(nums); i++ {
    fmt.Println("i:", i, ", j:", nums[i])
}

// value 是值传递,非引用传递
for key, value := range nums {
    fmt.Println("key:", key, ", value:", value)
}

// 使用下划线 _ 忽略key
for _, value := range nums {
    fmt.Println("value:", value)
}

// 使用下划线 _ 和等号 = 忽略 key, value
for _, _ = range nums {
}
版权声明:本文来源Segmentfault,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://segmentfault.com/a/1190000039949106?sort=votes
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-06-13 21:51:57
  • 阅读 ( 743 )
  • 分类:Go

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢