गो में, संरचना प्रकारों में एम्बेडेड फ़ील्ड हो सकते हैं, जो एक संरचना के भीतर एक या अधिक प्रकारों को एम्बेड करने की अनुमति देते हैं। यह शक्तिशाली सुविधा कोड के पुन: उपयोग और कुशल मेमोरी प्रबंधन को सक्षम बनाती है। हालाँकि, पॉइंटर्स के बारे में सीखते समय इन क्षेत्रों तक पहुँचने के तरीके को समझना चुनौतीपूर्ण हो सकता है।
निम्नलिखित संरचना परिभाषाओं पर विचार करें:
type Engine struct {
power int
}
type Tires struct {
number int
}
type Cars struct {
*Engine // Embedded field with pointer
Tires // Embedded field without pointer
}
जैसा कि आपने देखा है, कार संरचना के भीतर, एक एम्बेडेड प्रकार सूचक *इंजन परिभाषित किया गया है। यह कार संरचना के माध्यम से इंजन प्रकार के तरीकों और फ़ील्ड तक पहुंच की अनुमति देता है।
इंजन एम्बेडेड फ़ील्ड के पावर फ़ील्ड तक पहुंचने के लिए, आपको पहले इंजन और कार संरचना दोनों को प्रारंभ करना होगा। मुख्य फ़ंक्शन में:
func main() {
car := new(Cars) // Initialize Cars struct
car.Engine = new(Engine) // Initialize Engine struct explicitly
car.power = 342 // Set power field
car.number = 4 // Set number field
}
दोनों संरचनाओं को स्पष्ट रूप से प्रारंभ करके, आप एम्बेडेड *इंजन पॉइंटर और वास्तविक इंजन ऑब्जेक्ट के बीच एक कनेक्शन स्थापित करते हैं। अब, आप कार संरचना के माध्यम से पावर फ़ील्ड तक पहुंच सकते हैं:
fmt.Println(car.power) // Prints 342
इसी तरह, गैर-पॉइंटर एम्बेडेड फ़ील्ड टायर के लिए , आप सीधे इसके नंबर फ़ील्ड तक पहुंच सकते हैं:
fmt.Println(car.number) // Prints 4
यह उदाहरण दर्शाता है कि किसी संरचना के भीतर एम्बेडेड फ़ील्ड को ठीक से कैसे आरंभ और एक्सेस किया जाए, जिससे आप कोड के पुन: उपयोग और कुशल मेमोरी प्रबंधन का पूरी तरह से उपयोग कर सकें।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3