第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

對結(jié)構(gòu)內(nèi)字段的外部引用是否會阻止該結(jié)構(gòu)被垃圾收集?

對結(jié)構(gòu)內(nèi)字段的外部引用是否會阻止該結(jié)構(gòu)被垃圾收集?

Go
白衣染霜花 2023-07-26 13:08:47
例如,如果我有一些type A struct { B string; C int },并且我有一個func foo(a A) *string { return &a.B },并且我用 來調(diào)用它c := foo(a),則a一定會保留在上下文中直到c可收集嗎?或者,如果我定義,這會對收集func foo1(a A) *string { s := a.B; return &s }時間產(chǎn)生影響嗎?A
查看完整描述

1 回答

?
犯罪嫌疑人X

TA貢獻2080條經(jīng)驗 獲得超4個贊

在第一個示例中,假設(shè)在a調(diào)用后未使用foo(a),a是可收集的,因為您a按值傳遞。該函數(shù)返回了一個指向 的副本中的值的指針a,因此a變得可收集,但在函數(shù)中創(chuàng)建的副本foo不可收集。

現(xiàn)在,如果您傳遞&afoo(a *A),則將a不可收集,因為c是指向它的指針。

您給出的第二個示例也傳遞了 的副本a,因此適用相同的參數(shù)。但是,如果您傳遞&a,然后返回一個指向來自 的字符串副本的指針aa則該指針將是可收集的,但不是您返回的字符串,因為存在對其的引用。


查看完整回答
反對 回復(fù) 2023-07-26
  • 1 回答
  • 0 關(guān)注
  • 122 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號