आप जैसे पाठक MUO का समर्थन करने में मदद करते हैं। जब आप हमारी साइट पर लिंक का उपयोग करके खरीदारी करते हैं, तो हम संबद्ध कमीशन अर्जित कर सकते हैं। और पढ़ें।

एक प्रमुख विशेषता जो रस्ट को शक्तिशाली और अधिक आकर्षक बनाती है, वह स्ट्रक्चर्स के लिए इसका समर्थन है। स्ट्रक्चर संबंधित डेटा को समूहीकृत करने के लिए समग्र डेटा प्रकार हैं। वे आपको कस्टम डेटा प्रकारों को नामित फ़ील्ड के साथ परिभाषित करने की अनुमति देते हैं जो कोड संगठन में सुधार करते हैं और डेटा हेरफेर को आसान बनाते हैं।

आप उपयोगकर्ता-परिभाषित डेटा प्रकारों और कॉन्फ़िगरेशन सहित विभिन्न वस्तुओं का प्रतिनिधित्व करने के लिए स्ट्रक्चर्स का उपयोग कर सकते हैं। कई अन्य डेटा संरचनाओं की तुलना में संरचनाएं अधिक लचीली होती हैं। संबंधित डेटा को समाहित करने की उनकी क्षमता उन्हें उपयोगी बनाती है क्योंकि वे वास्तविक दुनिया की वस्तुओं का अधिक तार्किक मॉडल बनाते हैं।

स्ट्रक्चर्स और स्ट्रक्चर फील्ड्स को परिभाषित करना

आप का उपयोग करके एक संरचना को परिभाषित करेंगे struct कीवर्ड के बाद स्ट्रक्चर का नाम आता है। संरचना के फ़ील्ड नाम और उनके निर्दिष्ट करके इसका अनुसरण करें जंग डेटा प्रकार घुंघराले ब्रेसिज़ की एक जोड़ी के अंदर।

instagram viewer
structव्यक्ति {
नाम: डोरी,
आयु: यू8,
is_student: बूल,
}

यह व्यक्ति संरचना में तीन क्षेत्र हैं। नाम फ़ील्ड एक स्ट्रिंग है, आयु फ़ील्ड एक अहस्ताक्षरित 8-बिट पूर्णांक है, और is_student क्षेत्र एक बूलियन है।

आप संरचना परिभाषा के बाद संरचना उदाहरण बनाने के लिए संरचना शाब्दिक का उपयोग कर सकते हैं। संरचना शाब्दिक संरचना के क्षेत्रों के मान निर्दिष्ट करते हैं।

होने देना व्यक्ति = व्यक्ति {
नाम: डोरी::से("जॉन"),
आयु: 27,
is_student: सत्य,
};

व्यक्ति चर का एक उदाहरण है व्यक्ति संरचना, एक संरचना शाब्दिक के साथ बनाई गई। यह शाब्दिक संरचना के सभी क्षेत्रों को उनके संबंधित डेटा प्रकार के मूल्यों के साथ त्वरित करता है।

स्ट्रक्चर्स बनाने के लिए कंस्ट्रक्टर्स का उपयोग करना

आप संरचना का उदाहरण बनाने के लिए कन्स्ट्रक्टर फ़ंक्शन का भी उपयोग कर सकते हैं।

प्रत्यय व्यक्ति {
// एक कन्स्ट्रक्टर फ़ंक्शन 'नया' परिभाषित करें जो 'नाम', 'आयु' और लेता है
// `is_student` पैरामीटर
fnनया(नाम: डोरी, आयु: यू8, is_student: बूल) -> खुद {
// `व्यक्ति` संरचना का एक नया उदाहरण बनाएं और इसके क्षेत्रों को आरंभ करें
// प्रदान किए गए मानों के साथ
खुद {
नाम,
आयु,
is_student,
}
}
}

// `व्यक्ति` संरचना के `नए` कन्स्ट्रक्टर फ़ंक्शन को कॉल करें और असाइन करें
// परिणामी उदाहरण `व्यक्ति` के लिए
होने देना व्यक्ति = व्यक्ति:: नया (डोरी::से("जॉन"), 27, सत्य);

ऊपर दिया गया प्रोग्राम कंस्ट्रक्टर को परिभाषित करता है व्यक्ति के साथ संरचना प्रत्यय कीवर्ड। नया कंस्ट्रक्टर स्ट्रक्चर फील्ड में तर्क के रूप में लेता है और प्रारंभिक मूल्यों के साथ स्ट्रक्चर का एक नया उदाहरण देता है।

आप एक बना सकते हैं व्यक्ति उदाहरण के साथ नया कन्स्ट्रक्टर, इसे उचित तर्क पारित कर रहा है।

संरचना क्षेत्रों तक पहुँचना और संशोधित करना

आप डॉट नोटेशन का उपयोग करके स्ट्रक्चर फील्ड को एक्सेस और संशोधित कर सकते हैं। आप बस बिंदु का उपयोग करें (.) इसके मान को एक्सेस करने या बदलने के लिए फ़ील्ड के नाम के बाद ऑपरेटर।

// एक व्यक्ति संरचना घोषित करें
structव्यक्ति {
नाम: डोरी,
आयु: यू8,
is_student: बूल,
}

fnमुख्य() {
// एक संरचना का दृष्टांत
होने देनामुठ व्यक्ति = व्यक्ति {
नाम: डोरी::से("जॉन"),
आयु: 27,
is_student: सत्य,
};

// संरचना का नाम और आयु क्षेत्र प्रिंट करें
प्रिंटल!("नाम: {}", व्यक्ति.नाम);
प्रिंटल!("आयु: {}", व्यक्ति.उम्र);

// is_student फ़ील्ड को संशोधित करें
व्यक्ति.is_student = असत्य;

प्रिंटल!("छात्र है: {}", व्यक्ति.is_student);
}

प्रोग्राम एक स्ट्रक्चर बनाता है, स्ट्रक्चर को इंस्टेंट करता है, प्रिंट करता है नाम, और आयु फ़ील्ड, और संशोधित करता है is_student फ़ील्ड को प्रिंट करने से पहले फ़ील्ड।

संरचनाओं के लिए विधियों की घोषणा

भिन्न सी में संरचनाएं, आप उन रस्ट स्ट्रक्चर्स पर तरीकों को परिभाषित कर सकते हैं जो एक उदाहरण पर काम करते हैं। विधियाँ ऐसे कार्य हैं जो पहुँच और संशोधन के लिए एक संरचना का संदर्भ लेते हैं। आप स्ट्रक्चर के तरीकों को कॉल करने और उनकी कार्यक्षमता तक पहुंचने के लिए डॉट नोटेशन का भी उपयोग कर सकते हैं।

यहां बताया गया है कि आप कैसे स्ट्रक्चर्स के लिए तरीकों की घोषणा कर सकते हैं और संचालन करने के लिए उन तरीकों का उपयोग कर सकते हैं:

structव्यक्ति {
नाम: डोरी,
आयु: यू8,
is_student: बूल,
}

प्रत्यय व्यक्ति {
fnहैलो कहें(&खुद) {
प्रिंटल!("नमस्कार, मेरा नाम {} है और मेरी उम्र {} साल है।", खुद।नाम,
खुद।आयु);
}

fnफ़ॉलो करें(&मुठखुद) {
खुदआयु + = 1;
}
}

fnमुख्य() {
होने देनामुठ व्यक्ति = व्यक्ति {
नाम: डोरी::से("जॉन"),
आयु: 27,
is_student: सत्य,
};

person.say_hello();

व्यक्ति.है_जन्मदिन ();

प्रिंटल!("नया जमाना: {}", व्यक्ति.उम्र);
}

कार्यक्रम के लिए दो तरीकों को परिभाषित करता है व्यक्ति संरचना। हैलो कहें विधि का संदर्भ लेता है खुद और एक ग्रीटिंग प्रिंट करता है जिसमें व्यक्ति का नाम और उम्र शामिल होती है। फ़ॉलो करें विधि एक परस्पर संदर्भ लेती है खुद और व्यक्ति की आयु में वृद्धि करता है।

रस्ट का स्वामित्व मॉडल स्मृति प्रबंधन का अनुकूलन करता है

स्ट्रक्चर बहुमुखी डेटा संरचनाएं हैं, जो न्यूनतम वर्ग समकक्ष के रूप में कार्य करती हैं।

अन्य रस्ट डेटा संरचनाओं की तरह, आपको संरचना चर के साथ काम करते समय रस्ट के स्वामित्व नियमों का पालन करना चाहिए। स्वामित्व मॉडल यह सुनिश्चित करता है कि आप अपने कार्यक्रमों में मेमोरी को कुशलता से प्रबंधित करते हैं, नल और लटकने वाले पॉइंटर्स जैसे सामान्य मुद्दों को रोकते हैं।