跟著貓哥學Golang 7 Map

2021-07-07 01:52:06 字數 1065 閱讀 6575

大多數現代化的程式語言都有個類似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...