陣列[切片]、字典、函式
阿新 • • 發佈:2022-03-01
目錄:
1:陣列【切片】
2:字典
3:函式
一、陣列【切片】
陣列和切片的區別就是一個是固定長度一個不固定。
- 不定長,可以跟Python一樣append追加元素
- 定長你定義變數的時候前面寫數字、不定長 前面不寫數字唄!!
- 切片的底層也是陣列
names := []string{"cfp","lixiao","haha"} names = append(names,"大神") //意思是:使用append函式 找到names 然後加一個元素,放到堆上,然後再賦值給names變數。記住append(names,"大神") 單單這樣,names是不會改變的。
二、字典(map)
字典和Python的字典一樣的,也是key/value。儲存的key是經過雜湊運算的。
2.1:宣告方式
注意點1!使用字典一定要先分配空間
注意點2!在map中不存在訪問越界的問題,它認為所有的key都是有效的。不像Python如果你dict["不存在的key"]就會報錯!,所以訪問一個不存在的key不會崩潰,它會返回這個型別的零值。
所以無法通過獲取value來判斷一個key是否存在,因此我們需要一個能夠校驗key是否存在的方式!
以下方式:
value,ok := idnames[1]
如何id=1是存在的,value就是該key的值,此時的ok是true。反之如何id=1不存在,value就是零值,ok是false。
注意點3:併發任務處理的時候,需要對map進行上鎖,要不然你有人讀有人寫,go程式會崩潰的。
使用自由函式刪除
delete(指定那個map,指定要刪除哪個key)