golang語言的數組 切片和字典
package main import ( "fmt" ) func main(){ //定長爲數組 不定長爲切片 //數組 var a[10] int //切片 var a[] int var a[10] int //定義一個數字長度爲10,存儲int類型 a[0] = 10 // 存儲 a[1] = 20 a[2] = 30 a[3] = 40 fmt.Println(a[0],a[1],a[2],a[3]) //通過序列打印 fmt.Println(a) //打印整個數組,因爲定義長度爲10,而我們只存了4個,所有後面的部分將以零值填充。 // 運行結果 10 20 30 40 [10 20 30 40 0 0 0 0 0 0] //初始化並賦值 num := [5]int{1,2,3,4,5} //初始化並賦值 fmt.Println(num) //數組遍歷 for i,value := range num{ //索引和值 fmt.Println(value,i) } //數組定義時可不定義切片大小 sliceOne := []int{1,2,3,4,5} fmt.Println(sliceOne[0],sliceOne[1],sliceOne[2]) //通過開始索引和結束索引創建一個新的切片 sliceTwo := sliceOne[1:3] //返回sliceOne中索引1到索引3,但不包含3 fmt.Println(sliceTwo) //運行結果:[2 3] //可省略開始索引,省略表示從索引0開始 fmt.Println(sliceOne[:3]) //返回索引0-索引3,不包含3 //可省略結束索引,省略表示直到最後一個 fmt.Println(sliceOne[1:]) //打印索引1到最後,全部被打印出來 運行結果:[2 3 4 5] //同事省略開始和結束表示複製全部切片 fmt.Println(sliceOne[:]) //使用make初始化並設定長度與容量 sliceThree := make([]int,5,10)//表示初始化一個切片,長度爲5,最大容量爲10,即在內存中申請了能放置10個長度的空間,這樣在有新元素插入的時候就不用再動態分配空間提高效率。 fmt.Println(sliceThree) //運行結果:[0 0 0 0 0] //使用len 和cap 查看切片的長度和容量 fmt.Println(len(sliceThree)) fmt.Println(cap(sliceThree))//運行結果:5 10 //使用append來追加元素 sliceThree = append(sliceThree,2,3,4) fmt.Println(sliceThree) //運行結果:[0 0 0 0 0 1 2 3 4] //多維數組 var a [2][3]int = [...][3]int{{1,2,3},{4,5,6}} //切片合併 var a = []int{1,2,3} var b = []int{4,5,6} a = append(a,b...) //排序 排序操作主要都在sort包中,導入就可以使用了。 import sort sort.Ints #對整數進行排序 sort.Strings #對字符串進行排序 sort.Float64s #對浮點數排序 //查找 sort.SearchInts(a []int, b int) 從數組a中查找B,查找時會先進行排序然後在查找,返回下標 index sort.SearchFloats(a []float64, b float64) sort.SearchStrings(a p[]string,b string) // 字典map // 使用make來創建map //聲明時不會分配內存的,需要用make初始化才能分配內存進行操作 m := make(map[string]int) //定義建值爲字符串,值爲整型 m["first"] = 1 fmt.Println(m["first"]) //運行結果:1 m["first"] = 2 fmt.Println(m["first"]) //運行結果:2 //使用len獲取map長度 fmt.Println(len(m)) //運行結果:1 //檢查map中是否包含某個建值 v,ok :=m["third"] //如果包含建值third那麼,v等於third對應的值,ok爲true,否則v爲零值,ok爲false fmt.Print(v,ok) //運行結果:0 false //delete刪除map中的建值對 delete(m,"first") fmt.Println(m) //創建的時候初始化 var mp = map[string]int{ "first" : 1, "second" : 2, } //字典嵌套 outer := map[string]map[string]int{ "inner1":map[string]int{ "first":1, "second":2, } "inner2":map[string]int{ "first":3, "second":4, } } }