Go 语言的数组使用

Posted 小伍

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 {
}

以上是关于Go 语言的数组使用的主要内容,如果未能解决你的问题,请参考以下文章

Go语言技巧之正确高效使用slice(听课笔记总结--简单易懂)

Go语言技巧之正确高效使用slice(听课笔记总结--简单易懂)

你知道的Go切片扩容机制可能是错的

go语言数组与切片比较

Go语言数据结构切片

go——切片