go語言基礎知識筆記(二)之數組和切片

數組和切片知識用的也是比較多,的給咱們工做帶來很大的便利golang

 

(一) 數組

定義:在golang中數組的長度是不可變,數組存放要求是同一種數據類型
//golang中數組定義的四種方法
1.先聲明,後賦值
  var arr1 [2]int
     arr1[0]=1
     arr1[1]=2

2.聲明同時賦值
  var arr2 = [2]int{1,2}
  //或者
  arr2 := [2]int{1,2}
3.不指定長度程序自動計算長度
  var arr = [...]int{1,2}
  //或者
  arr := [...]int{1,2}
4.key和value的形式
  var arr = [...]int{1:1,0:2}
//或者
  arr := [...]int{1:1,0:2}
//golang中數組遍歷的兩種方法
1.常規方法
for i:=0;i<len(arr);i++ {
  fmt.Printf("arr[%d] = %v",i,arr[i])
}
2.高級方法(推薦使用)
for key(_),value:= range arr{
  fmt.Printf("arr[%d] = %v",i,arr[i])
}
//動態修改數組的值,默認狀況下數組是值傳遞 //形參定義成一個指針數據類型
func T2(a *[]string) {
    *a[0] = 99 //修改原來的值
}

func main() {
    s1 := [...]string{11,22}
    T2(&s1) //傳遞一個數組的地址做爲實際參數
    s1  = append(s1 , "33")
    fmt.Println(s1)
}
//數組指針和指針數組
1.數組指針便是一個指針而且這個指針保存了一個指向數組的地址
   var arr = [...]int{5:2}    //數組指針    var pf *[6]int = &arr
2.指針數組便是一個數組,數組裏面保存不少指針
  x,y := 1, 2
  pfArr := [...]*int{&x,&y}
//多維數組(二維)
1.多維數組即數組裏面又是一個數組
2.定義方法
  2.1先定義再賦值
    var arr1 [2][2]int
    arr1[0][0] = 5.....
  2.2定義的同時賦值
    var arr2 [2][2]int = [2][2]int{{1,2,3},{3,4,5}}
3.多維數組的遍歷
  3.1
    for i:=0;i<len(arr);i++{
       for j:=0;i<len(arr[i]);j++{
      }
    }
  3.2
    for i;value1 :=range arr2{
      for j;value2 :=range value1 {
        
    }
  
}

(二) 切片

  切片是數組的引用,而且是動態的數組,長度能夠變化.數組

//切片的定義的幾種方法 1.數組的引用
  var intArr [4]int = [...]{12,34,44,33,11}
  slice := intArr[1:3]
2.make定義
  
var slice []type = make([]type,len,[cap])
3.常規用法
  var slice []type = []type{value1,value2,value3}
  
遍歷的方法和數組也是同樣的就不繼續囉嗦了

 

//切片的內置函數 1.動態添加切片
    append(切片,value1,value2,value3)
2.切片的copy
    copy(切片1,切片2)
//字符的切片
1.字符的切片在某種狀況下是不可變的
2.想要修改字符串中的值[]byte(str)[這種是處理英文方式],
[]rune(str)[這種是處理中文方式]
相關文章
相關標籤/搜索