[Golang] Golang 的 Set

引言

某天在使用 Golang 的時候,突然發現原來 Golang 沒有像其他語言一樣有實作 Set 的 data structure,稍微爬了文後發現,原來 Golang 會用 map 來模擬 Set ,以下是僅是小小的紀錄。

map 模擬 Set

map 是一個 key-value pair 的 data structure,keyvalue 可以是任意的 type,並且 key 必須要是唯一。而正因為 key 必須要是唯一的,所有重複的 key 將會被刪除,藉此達到實作 Set 的目的。

作法:將 string 作為 key 並將 value 設為 true

Eg:

mySet := map[string]bool{} mySet["apple"] = true mySet["banana"] = true // 檢查某個值是否在 set 中 if mySet["orange"] { fmt.Println("orange 在 set 中") } else { fmt.Println("orange 不在 set 中") } // iterate all values in set for key, _ := range mySet { fmt.Println(key) } // 獲取 set 的大小 fmt.Println(len(mySet))