गो में, संदर्भ पैकेज अनुरोध-दायरे वाले मूल्यों, रद्दीकरण संकेतों और समय सीमा को प्रबंधित करने में मदद करता है।
किसी संदर्भ को शुरू करने के दो सामान्य तरीके हैं context.TODO() और context.Background()।
हालाँकि वे एक जैसा व्यवहार करते हैं, फिर भी वे अलग-अलग उद्देश्यों की पूर्ति करते हैं।
context.Background() डिफ़ॉल्ट है जब आपको किसी विशेष प्रबंधन (जैसे रद्दीकरण या समय सीमा) की आवश्यकता नहीं होती है।
इसका उपयोग अक्सर मुख्य, init, या उन परिचालनों को आरंभ करते समय किया जाता है जिनके लिए अधिक विशिष्ट संदर्भ की आवश्यकता नहीं होती है।
func main() { ctx := context.Background() server := http.Server{Addr: ":8080", BaseContext: func(net.Listener) context.Context { return ctx }} log.Fatal(server.ListenAndServe()) }
इस उदाहरण में, context.Background() का उपयोग HTTP सर्वर के लिए आधार संदर्भ स्थापित करने के लिए किया जाता है।
context.TODO() एक प्लेसहोल्डर संदर्भ है। इसका उपयोग तब करें जब आप अनिश्चित हों कि कौन सा संदर्भ प्रदान करना है या बाद में पुन: विचार करने की योजना बना रहे हैं।
func processOrder() { ctx := context.TODO() // Placeholder, decision on context pending err := db.SaveOrder(ctx, orderData) if err != nil { log.Println("Failed to save order:", err) } }
यहाँ, context.TODO() का उपयोग डेटाबेस ऑपरेशन के लिए अस्थायी रूप से किया जाता है जब तक कि अधिक विशिष्ट संदर्भ परिभाषित न हो जाए।
दोनों फ़ंक्शन एक खाली संदर्भ लौटाते हैं, लेकिन वे अलग-अलग इरादे व्यक्त करते हैं:
संदर्भ का उपयोग कब करें। पृष्ठभूमि():
संदर्भ का उपयोग कब करें।TODO():
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3