खोज…


परिचय

सरणियों के अलावा अन्य सभी मिश्रित प्रकार में विभेदक हो सकते हैं, जो विशेष गुणों वाले घटक हैं। भेदभाव करने वाले एक असतत प्रकार या एक पहुंच प्रकार के हो सकते हैं। बाद के मामले में एक्सेस प्रकार एक नामित एक्सेस प्रकार हो सकता है या यह अनाम हो सकता है। अनाम एक्सेस प्रकार के एक विभेदक को एक्सेस पैरामीटर के साथ सादृश्य द्वारा एक पहुंच विवेचक कहा जाता है।

विभेदित रिकॉर्ड प्रकार

एक भेदभाव रिकॉर्ड प्रकार के मामले में, कुछ घटकों को भेदभावकर्ता के रूप में जाना जाता है और शेष घटक इन पर निर्भर कर सकते हैं। विभेदकों को टाइप के पैरामीटर के रूप में सोचा जा सकता है और सिंटैक्स इस सादृश्य को प्रकट करता है। इस उदाहरण में हम एक प्रकार बनाते हैं जो पैरामीटर के रूप में एक धनात्मक के साथ एक वर्ग मैट्रिक्स प्रदान करते हैं:

type Square(X: Positive) is
    record
        S: Matrix(1 .. X, 1 .. X);
    end record;

फिर 3 बाय 3 का एक वर्ग बनाने के लिए, बस यूटी टाइप स्क्वायर को इस तरह से कॉल करें:

Sq: Square(3);

वेरिएंट रिकॉर्ड संरचनाएं

एक रिकॉर्ड प्रकार का एक भेदभाव वस्तुओं की संरचना को प्रभावित कर सकता है। एक वस्तु में घटकों का एक विकल्प मौजूद हो सकता है क्योंकि वस्तु बनाते समय एक विभेदक का एक विशेष मूल्य था। इस भिन्नता का समर्थन करने के लिए, रिकॉर्ड प्रकार की परिभाषा में ऐसे मामलों का अंतर शामिल होता है जो विभेदक पर निर्भर करते हैं:

type Fruit is (Banana, Orange, Pear);

type Basket (Kind : Fruit) is
   record
      case Kind is
         when Banana =>
            Bunch_Size      : Positive;
            Bunches_Per_Box : Natural;
         when Pear | Orange =>
            Fruits_Per_Box  : Natural;
      end case;
   end record;

फिर केले के लिए एक बॉक्स बनाने के लिए,

Box : Basket (Banana);

Box वस्तु अब अपने विभेदक, के अलावा दो रिकॉर्ड घटक हैं Kind , अर्थात् Bunch_Size और Bunches_Per_Box



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow