go语言之数组
Posted bainianminguo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go语言之数组相关的知识,希望对你有一定的参考价值。
1、go语言的数组和python的列表不一样,python的列表没有限定类型,而go的数组限定的类型,理由是这样的,请看下面的图
2、go语言的数组
package main import "fmt" //go语言的数组类似python中的列表 //申明数组 //var 数组名[数组长度] 数组类型 //数组的长度定好之后不能修改 //go语言的数组定义了类型,就只能存储这种类型,不能存储其他类型 func main() { //首先定义一个一维数组 //定义一个int类型的数组 var arr1 [5] int //申明加赋值数组 arr2 := [5]int{1,2,3,4,5} //可以省略大小 arr3 := [...]int{1,2,3,4,5} arr4 := [10]int{1,2,3,4,5} fmt.Println(arr1,arr2,arr3,arr4) //[0 0 0 0 0] [1 2 3 4 5] [1 2 3 4 5] [1 2 3 4 5 0 0 0 0 0] //定义一个二维数组,四行五列的数组,一般也用的比较少 var grid [4][5] int fmt.Println(grid) //[[0 0 0 0 0] [0 0 0 0 0] [0 0 0 0 0] [0 0 0 0 0]] //数据的遍历,一个for一个range //方式1 for i :=0;i < len(arr3);i++{ fmt.Println(i,arr3[i]) } //方式2 for i := range arr3 { fmt.Println(i,arr3[i]) } for i,v := range arr3 { fmt.Println(i,v) } }
3、go语言的数组是值类型,不是引用
package main import "fmt" func printArr(arr [5]int) { arr[0] = 100 fmt.Println(arr) } func main() { //var arr1 [5] int //printArr(arr1) //[100 0 0 0 0] //fmt.Println(arr1) //[0 0 0 0 0] //报错 //arr2 := [3]int{1,2,3} //printArr(arr2) // .\\test20.go:23:10: cannot use arr2 (type [3]int) as type [5]int in argument to printAr arr3 := [...]int{1,2,3,4,5} printArr(arr3) //[100 2 3 4 5] fmt.Println(arr3) //[1 2 3 4 5] }
以上是关于go语言之数组的主要内容,如果未能解决你的问题,请参考以下文章