如何在Go語言中刪除map中的鍵?
要從map中刪除一個鍵,我們可以使用Go內建的delete()函式。需要注意的是,當我們從map中刪除一個鍵時,它的值也會被刪除,因為在Go的map中,鍵值對就像一個單一實體。
語法
下面顯示了delete函式的語法。
delete(map,key)
按照上述格式呼叫函式後,map中的鍵將被刪除。
現在,讓我們在Go程式碼中使用上述函式,並瞭解它的工作原理。
示例1
考慮以下程式碼
package main import ( "fmt" ) func main() { m := make(map[string]int) m["mukul"] = 10 m["mayank"] = 9 m["deepak"] = 8 fmt.Println(m) fmt.Println("Deleting the key named deepak from the map") delete(m, "deepak") fmt.Println(m) }
在上面的程式碼中,我們有一個名為m的map,它包含一些字串作為鍵,一些整數作為這些鍵的值。稍後,我們使用delete()函式從map中刪除名為“deepak”的鍵,然後我們再次列印map的內容。
如果我們使用命令go run main.go執行上述程式碼,那麼我們將在終端中得到以下輸出。
輸出
map[mukul:10 mayank:9 deepak:8] Deleting the key named deepak from the map map[mukul:10 mayank:9]
上述程式碼在大多數示例中都能正常工作,但在一種情況下會引發panic。這種會導致panic的情況是,我們不確定特定鍵是否存在於map中。
示例2
為了確保我們編寫的程式碼不會引發panic,我們可以使用以下程式碼。
package main import ( "fmt" ) func main() { m := make(map[string]int) m["mukul"] = 10 m["mayank"] = 9 m["deepak"] = 8 fmt.Println(m) fmt.Println("Deleting the key named deepak from the map") if _, ok := m["deepak"]; ok { delete(m, "deepak") } fmt.Println(m) }
上述方法更安全,建議使用它而不是第一種方法。
輸出
如果我們使用命令go run main.go執行上述程式碼,那麼我們將在終端中得到以下輸出。
map[mukul:10 mayank:9 deepak:8] Deleting the key named deepak from the map map[mukul:10 mayank:9]
廣告