3 回答

TA貢獻(xiàn)1810條經(jīng)驗 獲得超5個贊
很奇怪的是,
package main
func main () {
var sessions = map[string] chan int{};
delete(sessions, "moo");
}
似乎有效。不過,這似乎對資源的使用很差!
另一種方法是檢查是否存在并使用值本身:
package main
func main () {
var sessions = map[string] chan int{};
sessions["moo"] = make (chan int);
_, ok := sessions["moo"];
if ok {
delete(sessions, "moo");
}
}

TA貢獻(xiàn)1783條經(jīng)驗 獲得超4個贊
從Go 1發(fā)行說明復(fù)制
在舊的語言中,k
要從所代表的地圖中刪除帶有鍵的條目m
,請寫下該語句,
m[k] = value, false
此語法是一種特殊的特殊情況,唯一的二對一分配。它要求傳遞一個被評估但被丟棄的值(通常被忽略),以及一個幾乎總是常量false的布爾值。它完成了工作,但很奇怪,也是爭論的焦點。
在Go 1中,語法已經(jīng)消失了。而是有一個新的內(nèi)置函數(shù)delete
。通話
delete(m, k)
將刪除由表達(dá)式檢索的地圖條目m[k]
。沒有返回值。刪除不存在的條目是無操作。
更新:跑步go fix
會的形式表達(dá)轉(zhuǎn)換m[k] = value, false
成delete(m, k)
時顯然被忽略的值可以從程序被安全地丟棄,false
是指預(yù)定義的布爾常數(shù)。該修復(fù)工具將標(biāo)記該語法的其他用途,以供程序員檢查。

TA貢獻(xiàn)1863條經(jīng)驗 獲得超2個贊
從有效出發(fā):
要刪除地圖條目,請使用delete內(nèi)置函數(shù),該函數(shù)的自變量是地圖和要刪除的鍵。即使地圖上已經(jīng)沒有鑰匙,也可以這樣做。
delete(timeZone, "PDT") // Now on Standard Time
- 3 回答
- 0 關(guān)注
- 290 瀏覽
添加回答
舉報