如何在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]
廣告
資料結構
網路
關係資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP