golang语言学习第七课:数组
Posted golangxiong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang语言学习第七课:数组相关的知识,希望对你有一定的参考价值。
go语言中,定义数组有3种方法:
//定义数组的3种方法 var arr1 [5]int //必须在[]中填入数组的大小,如果不填则不是数组,而是切片 arr2 := [3] int {1,3,5} //第二种定义数组的方法,只能在函数体内用,必须给初始值。 arr3 := [...] int {2,4,6,8,10} //第三种,让编译器去计算个数的方法。
var grid [4][5]int //定义一个2维数组,4行5列,从前往后读,4个东西,4个什么东西呢,4个长度为5的int数组 //go语言支持2维或多维数组
遍历数组也有2种方法:
具体看完整的练习代码吧:
package main import "fmt" func main() { //定义数组的3种方法 var arr1 [5]int //必须在[]中填入数组的大小,如果不填则不是数组,而是切片 arr2 := [3] int {1,3,5} //第二种定义数组的方法,只能在函数体内用,必须给初始值。 arr3 := [...] int {2,4,6,8,10} //第三种,让编译器去计算个数的方法。 fmt.Println(arr1, arr2, arr3) var grid [4][5]int //定义一个2维数组,4行5列,从前往后读,4个东西,4个什么东西呢,4个长度为5的int数组 //go语言支持2维或多维数组 fmt.Println(grid) //遍历数组的第一个方法,不常用 for i:=0; i<len(arr3); i++ { fmt.Print(arr3[i]) } //遍历数组的第2种方法,也是最常用的方法: for k:= range arr3 { fmt.Println(k) fmt.Println("----------") } for _,v:= range arr3 { //注意:range不要打错成rang,少打字母e fmt.Println(v) fmt.Println("+++++++++++") } for k,v:= range arr3 { fmt.Println(k,v) } }
需要注意的是: go语言中, 数组是值类型,不会对原始数组里的数据做出修改,只是简单的拷贝。
另外需要注意的是:
[10]int 和 [20]int 是不同的类型
调用 func f(arr [10]int) 会拷贝数组,不会改变数组里面的值, go语言中函数参数传递就一种方法:值传递,如需改变数组里的值,可以用指针。
在go语言中一般不直接使用数组,而是使用Slice切片
以上是关于golang语言学习第七课:数组的主要内容,如果未能解决你的问题,请参考以下文章