大多數現代化的程式語言都有個類似map的概念,大意就是對映,go語言也不能例外。
1. golang裡,map對映鍵到值,以貓哥的粗淺認識,map的作用類似於雜湊表或者python裡的字典,只不過比後兩者用得更廣泛。
map在golang裡是一種資料型別,與golang的結構體類似,map必須先宣告「鍵值」型別,然後在使用之前必須用make
來建立。來看個例子:
package main
import "fmt"
func main()
#輸出:
map[2:dos 0:cero 1:uno]
是不是類似雜湊表?儲存都是隨機的。
2. 如果頂層型別只有型別名的話,可以在文法的元素中省略鍵名。不過鍵名不能取消。
package main
import "fmt"
type person struct
var m1 = map[int]person ,
2: ,
}func main()
#輸出:
map[1: 2:]
3. map的crud
3.1 新增和修改:
非常簡單:m[key] = value
3.2 讀取:
類似的,怎麼都能想到 a := m[key]
3.3 查詢:
elem, err = m[key] //err
3.4 刪除:
delete(m, key)
3.5 乙個map的crud例子:
package main
import "fmt"
func main()
}#輸出:
the value: 100
the value: 90
the value fail: 0
the value: 60 present? true
map還有更高階的用法,待下下....下回分解...
跟著貓哥學Golang 16 Channel
goroutine和channel是golang之所以被稱之為 天生併發 的兩個核心原因。channel是goroutine之間進行通訊的一種方式。與unix中的管道功能非常類似。貓哥說 其實就是資料結構裡面的佇列嘛 先進先出 channel宣告 channeltype chan chan chan...
跟著貓哥學Golang 6 結構體
非常類似於c語言,golang中的乙個結構體 struct 就是乙個欄位的集合。1.golang定義結構體很簡單 type struct func main var jerry person jerry.name jerry jerry.age 21 jerry.gender male fmt.pr...
跟著貓哥學Golang 12 結構體的方法
golang 沒有類,只有結構體。不過golang可以在結構體型別上定義方法,其實就是配合結構體的函式。方法和之前講過的函式是有些小區別的 對應的結構體資訊 也叫 方法接受者 出現在方法定義中。貓哥語 有golang特色的方法。1.結構體方法的定義格式 func var struct name fu...