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

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

等效于Java finalize方法

等效于Java finalize方法

Go
斯蒂芬大帝 2021-04-02 10:11:56
Go中是否有類似java finalize的方法?如果我有一個類似的類型結(jié)構(gòu)    type Foo struct {        f *os.File        ....    }func (p *Foo) finalize() {     p.f.close( )           }如何確保在垃圾回收對象時關(guān)閉文件?
查看完整描述

2 回答

?
烙印99

TA貢獻(xiàn)1829條經(jīng)驗 獲得超13個贊

runtime.SetFinalizeriirc。但是它被認(rèn)為是一件壞事,并且不能保證在程序退出之前就可以運行

編輯:如下所述,當(dāng)前os包已runtime.SetFinalizer在文件上調(diào)用。但是,SetFinalizer不應(yīng)該依賴它。作為一個為什么的例子,我有一個類似于文件服務(wù)器的應(yīng)用程序,但我忘了關(guān)閉打開的文件。在GC將其選中并稱為終結(jié)器之前,該過程通??梢垣@取約300個打開的文件。


查看完整回答
反對 回復(fù) 2021-04-26
?
一只甜甜圈

TA貢獻(xiàn)1836條經(jīng)驗 獲得超5個贊

您也不會在Java中這樣做。在Java中要做的正確的事情是finally在您打開的位置附近有一個將其關(guān)閉的塊。


您可以在godefer函數(shù)中使用類似的模式進(jìn)行清理。例如,如果您這樣做(java):


try {

  open();

  // do stuff

} finally {

  close();

}

在進(jìn)行中,您可以這樣做:


open();

defer close();

// do stuff


查看完整回答
反對 回復(fù) 2021-04-26
  • 2 回答
  • 0 關(guān)注
  • 231 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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