定义数组的方式
1.定义int数组定长数组,初始值为0(在go语言中初始化时初始值均为0)
var arr1 [5] int
2.定义给数组赋初值的数组,没有赋初值的数组的值为0
var arr2 = [5] int {1,2,3,4,5}
var arr3 = [5] int {1,2,3}
数组遍历的方式
1.循环遍历数组
var myArray1 [10] int
for i:=0;i<len(myArray1);i++{
fmt.Println(myArray1[i])
}
2.利用range遍历数组,会返回一个元素对
for index,value :=range myArray2{
fmt.Println("index=",index,"value",value)
}
数组传参
1.静态传参
需要注意的是,传入数组是什么数据类型,在数组传递时就应该是什么数据类型。如代码所示,myArray3属于长度为5的int型数组,因此在printArray函数中定义传递参数就应该是myArray [5]int,名字任意
func printArray(myArray [5]int) {
for index,value:=range myArray{
fmt.Println("index=",index,"value=",value)
}
}
func main() {
var myArray3 [5] int
printArray(myArray3)
}
2.动态传参
可以动态修改数组内容,数组类型是动态数组
func printArray1(myArray []int) {
//_表示匿名遍历,因为返回两个值,但是index我们不关心,还必须用两个参数接收返回数据,因此就必须用_这种匿名方式接收
for _,vaule:=range myArray{
fmt.Println("value=",vaule)
}
myArray[0]=100
}
func main() {
myArray:=[]int{1,2,3,4} //动态数组
fmt.Printf("myArray type is %T\n",myArray)
//值修改前的输出
printArray1(myArray)
fmt.Println("========")
//值修改后的输出
for _,vaule:=range myArray{
fmt.Println("value=",vaule)
}
}