亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Go 中使用指針值清除地圖

在 Go 中使用指針值清除地圖

Go
喵喔喔 2021-06-27 12:49:22
我有一個 map[string]*list.List 并且每個列表節點也是一個指針。通過簡單地將映射清零,所有映射和列表以及所有這些指針都將被清除并垃圾收集并準備再次使用嗎?type UnrolledGroup struct {                                                                                                                                              next int    s    []uint32 } var dictionary = struct {     m    map[string]*list.List     keys []string                                                                                                                                                     }{m: make(map[string]*list.List)} l := list.New() newGroup := UnrolledGroup{next: 1, s: make([]uint32, groupLen)} newGroup.s[0] = pos l.PushBack(&newGroup) dictionary.m[token] = l現在這清楚了整個事情嗎? dictionary.m = nil
查看完整描述

2 回答

?
LEATH

TA貢獻1936條經驗 獲得超7個贊

這取決于:如果不再“可達”,一切都將被 GC 處理。如果您保留對存儲在地圖中的內容的其他引用,則不會收集它。如果地圖是這些對象的唯一根,它們將被收集。(不要想太多這些東西。)


查看完整回答
反對 回復 2021-07-12
?
白板的微信

TA貢獻1883條經驗 獲得超3個贊

map是一個引用類型,即它是一個指向底層結構的指針類型。您可以將指針設置為nil,但是如果其他人擁有指向相同底層結構的指針,那么他們仍然擁有對內部所有事物的引用。


查看完整回答
反對 回復 2021-07-12
  • 2 回答
  • 0 關注
  • 258 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號