go语言数组学习

定义数组的方式
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)
	}
}