go基础5-高级数据类型-数组

 

数组

  定义数组的格式 var <varName> [n]<type>,n>=0

  数组长度也是类型的一部分,因此具有不同长度的数组为不同的类型

  注意区分指向数组的指针和指针数组

  数组在go中为值类型

  数组之间可以用==和!=比较,但不可以用<>比较

  可以使用new来创建数组,此方法返回一个指向数组的指针

  go支持多维数组

  go语言版冒泡排序

  

  var a[2]int
  b:= [3]int{19,1}
  fmt.Println(a)
  fmt.Println(b)
  fmt.Println(b[1])
  fmt.Println(b[2])

  输出[0 0]   [19 1 0]   1  0

  

  c:=[...]int{1,2,3,4,5}
  fmt.Println(c)

 输出[1 2 3 4 5]

  

  d:=[...]int{1:1,2:2,19:19}
  fmt.Println(d)

  输出[0 1 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19]

  数组指针

  

  arr1:=[...]int{9:1}
  var p *[10]int = &arr1
  fmt.Println(p)

  输出&[0 0 0 0 0 0 0 0 0 1]

 

 指针数组  

  x,y:=1,2
  arr2:=[...]*int{&x,&y}
  fmt.Println(arr2)

  输出[0xc42000e2a8 0xc42000e2b0]

  

  new

  p2:=new([10]int)
  fmt.Println(p2)

   输出&[0 0 0 0 0 0 0 0 0 0]

  

  arr3 :=[10]int{}
  arr3[1]=2
  fmt.Println(arr3)
  p3:=new([10]int)
  p3[1]=2
  fmt.Println(p3) 

  输出[0 2 0 0 0 0 0 0 0 0]     &[0 2 0 0 0 0 0 0 0 0]

 

  多维数组

  arr4:=[2][3]int{
  {1,1,1},
  {2,2,2}}
  fmt.Println(arr4)

  输出[[1 1 1] [2 2 2]]

 

冒泡排序

  arr5:=[...]int{5,6,8,3,2,9}

  num:=len(arr5)
  for i:=0;i<num;i++{
    for j:=i+1;j<num;j++{
      if(arr5[i]<arr5[j]){
        temp:=arr5[i]
        arr5[i] = arr5[j]
        arr5[j]=temp
      }
    }
  }
  fmt.Println(arr5)

  输出[9 8 6 5 3 2]

 

 

posted @ 2017-10-31 21:49  liqinggai  阅读(180)  评论(0)    收藏  举报