GO基础之数组

  • 2019 年 11 月 2 日
  • 笔记

一、数组的声明与遍历

package main    import "fmt"    //声明数组的形式1  var arr [3]int  var arr2 = [4]int{1, 2, 3, 4}    func main() {      //    声明数组的形式2      a := [4]float64{2.3, 4, 5, 6.1}      fmt.Println(a)        b := [...]int {2,3,4}        //遍历数组方式1      for i:=0; i<len(a) ; i++ {          fmt.Print(a[i] , "t")      }        fmt.Println()        //遍历数组方式2      for _,value := range b  {          fmt.Print(value  , "t")      }        //if arr == nil {      //    fmt.Println("arr==nil")      //}      fmt.Print("n 遍历arr数组:")      for _ , value := range arr {          fmt.Print(value , "t")      }  }

数组是值传递

package main    import "fmt"    func main() {      a := [...] string{"a" , "b" , "c" , "d"}      b := a      b[0] = "x"      fmt.Println("a" , a)//[a b c d]      fmt.Println("b" , b)//[x b c d]  }

二、二维数组

二维数组在概念上是二维的,即是说其下标在两个方向上变化,下标变量在数组中的位置也处于一个平面之中,而不是象一维数组只是一个向量。但是,实际的硬件存储器却是连续编址的,也就是说存储器单元是按一维线性排列的。如何在一维存储器中存放二维数组,可有两种方式:一种是按行排列, 即放完一行之后顺次放入第二行。另一种是按列排列, 即放完一列之后再顺次放入第二列。

在GO语言中,二维数组是按行排列的。即,先存放a[0]行,再存放a[1]行,最后存放a[2]行。每行中元素也是依次存放。

1、二维数组的元素也称为双下标变量,其表示的形式为:
    数组名[下标][下标]
2、其中下标应为整型常量或整型表达式。例如:
      a[3][4]   :表示a数组三行四列的元素。

package main    import "fmt"    func main() {      var a = [5][3]int{ {1,2,3}, {4,5,6}, {7,8,9}, {10,11,12},{13,14,15}}        for i:=0; i<len(a) ;i++  {          for j:=0;j<len(a[0]) ;j++  {              fmt.Printf("a[%d][%d]=%dn"  , i , j , a[i][j])          }      }  }