go从0到1项目实战体系五:数组

1. 数组:

. 数组是同一种数据类型的固定长度的序列.. 数组定义(一旦定义,长度不能变):
   var a [len]int
   a. var a[5]int    // [0, 0, 0, 0, 0],定义完后,默认初始化零值.. 长度是数组类型的一部分,所以不同长度的数组为不同类型:
   因此,var a[5] intvar a[10]int是不同的类型.. 数组通过下标进行访问:
   下标是从0开始,最后一个元素下标是len-1.. 访问越界:
   如果下标在数组合法范围之外,则触发访问越界,panic报错.. 数组是值类型,因此改变副本的值,不会改变本身的值.
   var arr1 [5]int
   arr2 := arr1
   arr2[2] = 100           // 赋值
   fmt.Println(arr1)       // [0, 0, 0, 0, 0]
   fmt.Println(arr2)       // [0, 0, 100, 0, 0]. 遍历:
   a. for i := 0; i < len(a); i++ {}
   b. for index, v := range a {}

2. 数组初始化:

var a [5]int = [5]int{1, 2, 3}                   // [1 2 3 0 0]
var b = [5]int{1, 2, 3, 4}                       // [1 2 3 4 0]
var c = [...]int{1, 2, 3, 4, 5, 6}               // [1 2 3 4 5 6]
var d = [5]string{3: "hello", 4: "world"}        // [   hello world],前面3个空字符串

3. 多维数组:

. 定义:
   var age [5][3]int
   var f [2][3]int = [...][3]int{{1, 2, 3}, {7, 8, 9}}. 遍历:
var f [2][3]int = [...][3]int{{1, 2, 3}, {7, 8, 9}}
for k1, v1 := range f {
   for k2, v2 := range v1 {
      fmt.Printf("(%d, %d) = %d ", k1, k2, v2)
   }
   fmt.Println()
}

你可能感兴趣的:(golang,java,算法)