1. 程式人生 > 其它 >陣列[切片]、字典、函式

陣列[切片]、字典、函式

目錄:

1:陣列【切片】

2:字典

3:函式

一、陣列【切片】

陣列和切片的區別就是一個是固定長度一個不固定。

定長陣列-不定長陣列

  • 定長,不能追加元素
  • 不定長,可以跟Python一樣append追加元素
  • 定長你定義變數的時候前面寫數字、不定長 前面不寫數字唄!!
  • 切片的底層也是陣列 可以動態改變長度

使用自由函式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)

二、切片

三、字典