स्विफ्ट - संरचनाएं

स्विफ्ट 4 स्ट्रक्चर्स के रूप में निर्माण का उपयोग करने का एक लचीला बिल्डिंग ब्लॉक प्रदान करता है। इन संरचनाओं का उपयोग करके एक बार निर्माण विधियों और गुणों को परिभाषित कर सकते हैं।

सी और ऑब्जेक्टिव सी के विपरीत

  • संरचना को कार्यान्वयन फ़ाइलों और इंटरफ़ेस की आवश्यकता नहीं है।

  • संरचना हमें एक एकल फ़ाइल बनाने और अपने इंटरफ़ेस को अन्य ब्लॉकों में स्वचालित रूप से विस्तारित करने की अनुमति देती है।

संरचना में चर मानों की प्रतिलिपि बनाई जाती है और बाद के कोडों में पुराने मूल्यों की एक प्रति लौटा दी जाती है ताकि मानों को परिवर्तित न किया जा सके।

वाक्य - विन्यास

Structures are defined with a 'Struct' Keyword.
struct nameStruct {
   Definition 1
   Definition 2
   ---
   Definition N
}

एक संरचना की परिभाषा

उदाहरण के लिए, मान लें कि हमें छात्रों के रिकॉर्ड को तीन विषयों के अंकों तक पहुँचना है और कुल तीन विषयों का पता लगाना है। यहाँ markStruct का उपयोग एक संरचना को तीन अंकों के साथ आरंभ करने के लिए किया जाता है जैसे कि datatype 'Int'।

struct MarkStruct {
   var mark1: Int
   var mark2: Int
   var mark3: Int
}

संरचना और उसके गुणों तक पहुँचना

संरचना के सदस्यों को इसके संरचना नाम से पहुँचा जाता है। संरचना के उदाहरण 'लेट' कीवर्ड द्वारा आरंभ किए गए हैं।

struct studentMarks {
   var mark1 = 100
   var mark2 = 200
   var mark3 = 300
}

let marks = studentMarks()
print("Mark1 is \(marks.mark1)")
print("Mark2 is \(marks.mark2)")
print("Mark3 is \(marks.mark3)")

जब हम खेल के मैदान का उपयोग करके उपरोक्त कार्यक्रम चलाते हैं, तो हमें निम्नलिखित परिणाम मिलते हैं -

Mark1 is 100
Mark2 is 200
Mark3 is 300

छात्र अंक संरचना नाम 'StudentMarks' द्वारा एक्सेस किए जाते हैं। संरचना के सदस्यों को अंक 1, mark2, mark3 के साथ पूर्णांक प्रकार मानों के रूप में आरंभीकृत किया जाता है। तब संरचना studentMarks () 'लेट' कीवर्ड के साथ 'मार्क्स' पर जाती है। इसके बाद 'निशान' में संरचना सदस्य मान शामिल होंगे। अब '' '' से स्ट्रक्चर मेंबर वैल्यूज़ को एक्सेस करके वैल्यूज़ प्रिंट की जाती हैं। इसके आरंभिक नामों के साथ।

struct MarksStruct {
   var mark: Int

   init(mark: Int) {
      self.mark = mark
   }
}

var aStruct = MarksStruct(mark: 98)
var bStruct = aStruct     // aStruct and bStruct are two structs with the same value!
bStruct.mark = 97

print(aStruct.mark)      // 98
print(bStruct.mark)      // 97

जब हम खेल के मैदान का उपयोग करके उपरोक्त कार्यक्रम चलाते हैं, तो हमें निम्नलिखित परिणाम मिलते हैं -

98
97

संरचनाओं का सर्वोत्तम उपयोग अभ्यास

स्विफ्ट 4 भाषा फ़ंक्शन ब्लॉकों को बनाने के लिए कस्टम डेटा प्रकारों के रूप में संरचनाओं को परिभाषित करने के लिए कार्यक्षमता प्रदान करती है। संरचना के उदाहरणों को आगे के जोड़तोड़ के लिए परिभाषित ब्लॉकों को इसके मूल्य से पारित किया जाता है।

संरचनाएं होने की आवश्यकता

  • सरल डेटा मानों को अलग करने के लिए।

  • एन्कैप्सुलेटेड डेटा और इसके संबंधित गुणों को 'संदर्भ' के बजाय 'मान' द्वारा कॉपी करना।

  • To कॉपी ’और 'संदर्भ’ की संरचना।

स्विफ्ट 4 में संरचनाएं अपने सदस्यों को उनके संदर्भों के बजाय उनके मूल्यों से गुजरती हैं।

struct markStruct {
   var mark1: Int
   var mark2: Int
   var mark3: Int

   init(mark1: Int, mark2: Int, mark3: Int) {
      self.mark1 = mark1
      self.mark2 = mark2
      self.mark3 = mark3
   }
}

var marks = markStruct(mark1: 98, mark2: 96, mark3:100)
print(marks.mark1)
print(marks.mark2)
print(marks.mark3)

जब हम खेल के मैदान का उपयोग करके उपरोक्त कार्यक्रम चलाते हैं, तो हमें निम्नलिखित परिणाम मिलते हैं -

98
96
100

एक और उदाहरण

struct markStruct {
   var mark1: Int
   var mark2: Int
   var mark3: Int
   
   init(mark1: Int, mark2: Int, mark3: Int) {
      self.mark1 = mark1
      self.mark2 = mark2
      self.mark3 = mark3
   }
}

var fail = markStruct(mark1: 34, mark2: 42, mark3: 13)

print(fail.mark1)
print(fail.mark2)
print(fail.mark3)

जब हम खेल के मैदान का उपयोग करके उपरोक्त कार्यक्रम चलाते हैं, तो हमें निम्नलिखित परिणाम मिलते हैं -

34
42
13

संरचना 'markStruct' को पहले उसके सदस्यों mark1, mark2 और mark3 के साथ परिभाषित किया गया है। अब सदस्य वर्गों के चर को पूर्णांक मान रखने के लिए प्रारंभ किया जाता है। तब संरचना सदस्यों की प्रतिलिपि 'स्व' कीवर्ड के साथ बनाई जाती है। एक बार संरचना के सदस्यों की प्रतिलिपि संरचना ब्लॉक बना दी जाती है, जिसके पैरामीटर निशान 'अंक' चर में पारित हो जाते हैं, जो अब छात्रों के अंकों को धारण करेगा। फिर अंक 98, 96, 100 के रूप में मुद्रित होते हैं। एक ही संरचना के सदस्यों के लिए अगला कदम 'असफल' नाम का एक और उदाहरण विभिन्न संरचनाओं के साथ एक ही संरचना के सदस्यों को इंगित करने के लिए उपयोग किया जाता है। फिर परिणाम अब 34, 42, 13. के रूप में मुद्रित किए जाते हैं। यह स्पष्ट रूप से बताता है कि संरचनाओं में सदस्य चर की एक प्रति होगी फिर सदस्यों को उनके आगामी फ़ंक्शन ब्लॉकों में पास करें।