के बराबर जाना है क्या Google go में जावा अंतिम रूप देने जैसी कोई विधि है? अगर मेरे पासGoogle जावा अंतिम रूप विधि
type Foo struct {
f *os.File
....
}
func (p *Foo) finalize() {
p.f.close()
}
मैं कैसे सुनिश्चित कर सकता हूं कि ऑब्जेक्ट कचरा एकत्र होने पर, फ़ाइल बंद हो जाती है?
आप स्पष्ट रूप से एक os.File बंद नहीं करते हैं इसके निर्माता कहता है 'क्रम उदाहरण के लिए, अगर आप इस (जावा) किया था। SetFinalizer' तो यह gc'ed होने पर बंद हो जाएगा (जैसा कि बताया गया है कि प्रोग्राम बाहर निकलने तक ऐसा नहीं हो सकता है)। अपना खुद का फाइनलाइज़र प्रदान करने की कोई ज़रूरत नहीं है। – nos
@ नहीं हाँ मुझे एहसास है। मुझे लगता है मुझे इसे अपने जवाब में शामिल करना चाहिए लेकिन मैं अपने फोन पर हूं। – cthom06
'SetFinalizer' का उपयोग करने के लिए यह वास्तव में एक बुरा अभ्यास है। इसके बजाय डस्टिन का उत्तर लें: 'defer' कीवर्ड का उपयोग करें। यह संसाधन सफाई के लिए डिज़ाइन किया गया है। – kirakun