एमजीओ में एक मॉडल के रूप में एक इंटरफ़ेस का उपयोग कैसे करें (जाओ)
वर्कफ़्लो से निपटते समय जिसमें विभिन्न प्रकार के कई एम्बेडेड नोड होते हैं, गो इंटरफेस का लाभ उठाना एक सामान्य दृष्टिकोण है। हालाँकि, एमजीओ का उपयोग करके इन दस्तावेज़ों को अलग करने का प्रयास करते समय यह एक चुनौती प्रस्तुत करता है।
इस समस्या के समाधान के लिए, आप किसी दस्तावेज़ के भीतर सीधे एक इंटरफ़ेस शामिल नहीं कर सकते हैं। ऐसा इसलिए है क्योंकि उचित उदाहरण बनाने के लिए डिकोडर में आवश्यक प्रकार की जानकारी का अभाव है।
एक व्यवहार्य समाधान में वास्तविक नोड और उसके प्रकार दोनों को संग्रहीत करने के लिए एक रैपर संरचना बनाना शामिल है:
type NodeWithType struct { Node Node `bson:"-"` Type string } type Workflow struct { CreatedAt time.Time StartedAt time.Time CreatedBy string Nodes []NodeWithType }
सेटअप पूरा करने के लिए, आपको NodeWithType पर SetBSON फ़ंक्शन लागू करना होगा। यह फ़ंक्शन टाइप स्ट्रिंग को डीकोड करेगा, उस स्ट्रिंग के आधार पर सही नोड प्रकार को इंस्टेंट करेगा, और फिर दस्तावेज़ को नए बनाए गए इंस्टेंस में अनमर्शल करेगा। SetBSON को लागू करने से यह सुनिश्चित होता है कि प्रत्येक एम्बेडेड नोड सही कंक्रीट प्रकार में ठीक से अनमर्शल हो गया है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3