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

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

如果切片縮小,切片的底層數組是否可訪問?

如果切片縮小,切片的底層數組是否可訪問?

Go
慕虎7371278 2023-02-21 16:32:27
給定一個類型,例如:type LicenseCards struct {    cards *[]int}我不會展示創建切片的代碼。但這刪除了最上面的項目,忽略了零長度的情況。func (licenseCards *LicenseCards) PopLicenseCard() int {    l := len(*licenseCards.cards)    ret := (*licenseCards.cards)[l-1]    *licenseCards.cards = (*licenseCards.cards)[:l-1]    return ret}如果我從切片中刪除最后一項并返回指向已刪除項的指針,是否保證它仍然可用?
查看完整描述

1 回答

?
慕桂英4014372

TA貢獻1871條經驗 獲得超13個贊

如果有東西正在使用內存,GC 將不會釋放它。


您的代碼的另一點是,在使用 . 運營商例如:只需這樣做:l := len(licenseCards.cards)。


此外,您不需要卡片和接收器都是指針。如果你不介意我想建議這個:


type LicenseCards struct {

    cards []int

}


func (lc *LicenseCards) PopLicenseCard() int {

    l := len(lc.cards)

    ret := lc.cards[l-1]

    lc.cards = lc.cards[:l-1]

    return ret

}


查看完整回答
反對 回復 2023-02-21
  • 1 回答
  • 0 關注
  • 99 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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