Avatar ·

क्या Go में assert का उपयोग किया जा सकता है? या यह बुराई है, जैसा C++ के बारे में कहा जाता है?

सभी को नमस्ते! मैं Go में नया हूँ, C++ से आया हूँ। वहाँ मैं अक्सर precondition और invariant की जाँच के लिए assert() का उपयोग करता था — जैसे, pointer null नहीं है, index array की सीमा में है, या object की स्थिति सही है। यह debugging में बहुत मदद करता था। Go में लिखना शुरू किया और देखा कि standard library में कोई assert function नहीं है। बेशक, testing package है, लेकिन वह केवल tests के लिए है। Production code में मैंने अपनी जाँचें लिखनी शुरू कीं, जैसे: ```go if somePtr == nil { panic("somePtr is nil, यह एक bug है!") } ``` लेकिन एक सहकर्मी ने कहा कि यह भयानक style है, और Go में errors return करना प्रचलित है, panic नहीं करना। उसने C++ का उदाहरण दिया, जहाँ assert की अक्सर आलोचना की जाती है क्योंकि इसे NDEBUG macro से बंद किया जा सकता है, और यह hidden bugs की ओर ले जाता है। अब मैं उलझन में हूँ। एक तरफ, C++ में assert