go语言数组

Posted ivy-blogs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go语言数组相关的知识,希望对你有一定的参考价值。

go 语言数组

go语言的数组只能存储同一种数据类型,数组必须制定它的数据的存储类型和存储数据的长度。

声明数组
package main

import "fmt"

func main() {

	// 零值声明
	var list1 [3]int
	fmt.Println(list1) // [0 0 0]

	// 用...自己声明数组的长度
	var list2 = [...]string{"a", "b", `c`}
	fmt.Println(list2) // [a b c]
	// 让数组自定来判断数组的长度时,当前的数组必须有值

	// 使用索引的方式来初始化
	var list3 = [...]int{0: 2, 5: 3}
	fmt.Println(list3) // [2 0 0 0 0 3]

	// 当初始化的值没有全部制定时候,剩下的全部用数组存储类型的0值来代替
	var list4 = [10]int{1, 3, 4}
	fmt.Println(list4) // [1 3 4 0 0 0 0 0 0 0]

	// 多维数组
	var list5 = [...][3]int{{1}, {2, 3}, {2, 2, 2}}
	fmt.Println(list5) // [[1 0 0] [2 3 0] [2 2 2]]
	// 多维数组只有外层才可以使用...来自动判断数组的长度
}

数组的操作

数组的长度是确定的,数组来声明的时候如果没有完全确定成员的数组,那么没有确定的值将使用当前数组存储的数据类型的零值来代替,所以数组是不支持增加和删除的操作的

package main

import "fmt"

func main() {
	var list = [3]int{}
	fmt.Println(list) // [0 0 0]

	// 数组根据下标来修改
	list[1] = 3
	fmt.Println(list) // [0 3 0]

	// 数组根据下表取值
	item := list[1]
	fmt.Println(item) // 3
}

数据的遍历

package main

import "fmt"

func main() {
	var list = [...] int {1,2,3,5,7}

	for i:=0;i<len(list);i++ {
		fmt.Println(list[i])
	}
}

数组是值类型,当一个数组被当成参数传递到函数中的时候,函数内部使用的是数组的副本

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

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

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

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

go语言数组与切片比较

go——切片

Go 语言范围(Range)