03 資料 切片的概念

2021-08-20 03:59:02 字數 1782 閱讀 1100

03 陣列、切片的概念

定義陣列

var arr1 [5]int

arr2 := [3]int

arr3 :=[...]int

var grid [3][4]int

fmt.println(arr1,arr2,arr3)

fmt.println(grid)

陣列的遍歷

//下表和數值

for _,v := range arr3

maxindex :=-1

maxvalue :=-1

for i,v := range arr3

}

為什麼要用range

陣列是值型別

切片(slice)的概念

注意的是切片是半開半閉區間的

reslice

s := arr[2:6]

s = arr[:3]

s = arr[1:]

s = arr[:]

arr := [...]int

fmt.println("reslice operation====")

fmt.println("arr[:] : ",arr)

s1 := arr[2:6]

fmt.println("arr[2:6] : ",s1)

s2 := s1[3:5]

fmt.println("s[3:5] : ",s2)

這裡s2的結果,明顯是陣列是對s1越界了,但是還是可以列印出來,列印的結果還是可以列印出來!

slice的實現

向slice新增元素

fmt.println("add element to array")

s3 := arr[4:7]

fmt.println(s3)

//no longer view arr , will new a space and copy s3

fmt.println(s4)

fmt.println(s5)

對slice切片進行操作
fmt.println("deteling slice ")

delete := s2[3]

fmt.println("detele elment is " , delete)

printslices(s2)

fmt.println("poping elment form front")

front := s2[0]

fmt.println("pop element is ",front)

printslices(s2)

fmt.println("poping elment form back")

back := s2[len(s2)-1]

fmt.println("pop element is ",back)

printslices(s2)

map
m := map[string]string
map的遍歷
fmt.println("getting value")

if coursename, ok := m["caourse"]; okelse

map的key

例子:尋找最長不含有重複字元的子串

對於每乙個字母x

筆記03 複習序列 索引 切片

序列,索引,列表,元祖,字典,集合 序列 序列是一塊用於存放多個值的連續記憶體空間,並且按一定的順序排列,每乙個值 稱為元素 都分配乙個數字,稱為索引或位置,通過該索引可以取出相應的值.例如,我們可以把一家酒店看做乙個序列,那麼酒店裡的每乙個房間都 可以看成是這個序列的元素。而房間號就相當於索引,可...

筆記 go語言 (Slice)切片的概念

切片是什麼,定義乙個arr,定義乙個s為arr中的2到6,這個s就是乙個切片 arr int s arr 2 6 半開半閉區間,值為 2 3 4 5 下面的都是slice fmt.println arr 2 6 arr 2 6 2 3 4 5 fmt.println arr 6 arr 6 0 1 ...

資料 使用切片

在不同語言裡,對分配記憶體不同做法,go語言分為兩種方式,一種是new,一種是make,這兩種方式有很大的差別,我們new乙個型別,比如new int 的時候怎麼分配記憶體呢,它計算出型別的長度,int是8bit,然後在堆上或者也可能在棧上分配空間然後返回這個指標,不管是什麼型別都是一樣的。new乙...