1 回答

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊
沒(méi)有內(nèi)置的方法可以做到這一點(diǎn),因此您需要自己制作一個(gè)函數(shù)。
如果要制作通用功能,則必須使用reflect. 如果您有特定的地圖類(lèi)型,那么您可以更輕松地制作它:
package main
import (
"fmt"
)
func Unique(m map[string]string) map[string]string {
n := make(map[string]string, len(m))
ref := make(map[string]bool, len(m))
for k, v := range m {
if _, ok := ref[v]; !ok {
ref[v] = true
n[k] = v
}
}
return n
}
func main() {
input := map[string]string{"a": "green", "0": "red", "b": "green", "1": "blue", "2": "red"}
unique := Unique(input)
fmt.Println(unique)
}
可能的輸出
地圖[a:綠色 0:紅色 1:藍(lán)色]
筆記
由于映射不維護(hù)順序,因此您無(wú)法知道哪些鍵將被刪除。
- 1 回答
- 0 關(guān)注
- 304 瀏覽
添加回答
舉報(bào)