golang 学习(十二)数组的用法

654 阅读1分钟

数组的用法

数组的定义 长度定义好 不能动态改变

第1种

 	var s [3]int //长度定义好 不能动态改变
	var str [3]string
	s[0] = 1
	s[1] = 2
	s[2] = 3
	fmt.Println(s)   //[1 2 3]
	fmt.Println(str) //[  ]

第2种

	var arr1 = [3]string{"php", "java", "golang"}
	arr2 := [3]string{"php", "java", "golang"}
	fmt.Println(arr1, arr2) //[php java gplang] [php java gplang]

第3种

	var arr3 = [...]int{1, 2, 3, 4, 56, 6}
	fmt.Println(arr3) //[1 2 3 4 56 6]

第4 种 用的少

	arr4 := [...]int{0: 1, 1: 12, 2: 56}
	fmt.Println(arr4) //[1 12 56]

用法

1.len(arr) 获取数组长度 2.数组循环 用 for 或 for range

	for _, v := range arr4 {
		fmt.Println(v)
	}

注意

数组是值类型

	var arr5 = [...]int{1, 23}
	arr6 := arr5
	arr5[0] = 10
	fmt.Println(arr5) // [10,23]
	fmt.Println(arr6) // [1,23]

切片是引用数据类型

	var arr7 = []int{1, 23}
	arr8 := arr7
	arr7[0] = 10
	fmt.Println(arr7) // [10,23]
	fmt.Println(arr8) // [10,23]

多维数组的定义

	var _arr = [3][2]int{
		{1, 2}, {3, 5}, {7, 4},
	}
	var _arr1 = [...][2]int{
		{1, 2}, {3, 5}, {7, 4},
	}
	fmt.Println(_arr)//[[1 2 0] [3 5 0] [7 4 0]]