some P (अपारदर्शी परिणाम प्रकार): ठोस प्रकार छिपाना
some P लौटाकर ठोस रिटर्न प्रकार छिपाइए और यह सुनिश्चित कीजिए कि वह P के अनुरूप हो; कॉल करने वालों को कार्यान्वयन उजागर किए बिना स्थिर प्रकार-जाँच का लाभ मिलता है।
some P (अपारदर्शी परिणाम प्रकार): ठोस प्रकार छिपाना, CoddyKit पर Swift Academy का एक निःशुल्क पाठ है। यह 3 में से 1वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Swift Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Swift Academy पाठ्यक्रम में कुल 3 पाठ शामिल हैं।
अपारदर्शी परिणाम प्रकार क्यों?
अपारदर्शी परिणाम प्रकार किसी ठोस प्रकार को प्रोटोकॉल के पीछे छिपाने के लिए some P का उपयोग करते हैं। ठोस प्रकार उस फ़ंक्शन के लिए निश्चित रहता है, लेकिन कॉल करने वालों को केवल प्रोटोकॉल का सार्वजनिक भाग दिखाई देता है।
- स्थैतिक प्रदर्शन खोए बिना एनकैप्सुलेशन
- फ़ैक्टरी और DSL-जैसे एपीआई के लिए उपयोगी
मूल अपारदर्शी फ़ैक्टरी
makeUnitCircle() some Shape लौटाता है। कॉल करने वाले area() चला सकते हैं, लेकिन ठोस प्रकार पर निर्भर नहीं कर सकते।
protocol Shape {
func area() -> Double
}
struct Circle: Shape {
let r: Double
func area() -> Double { .pi * r * r }
}
struct Square: Shape {
let s: Double
func area() -> Double { s * s }
}
// Opaque factory: callers know it's a Shape, not which one
func makeUnitCircle() -> some Shape {
Circle(r: 1.0) // concrete type is hidden
}
let sh = makeUnitCircle()
print(String(format: "%.2f", sh.area())) // 3.14प्रति फ़ंक्शन निश्चित
छिपा हुआ प्रकार प्रति फ़ंक्शन निश्चित होता है। some Shape लौटाने वाला कोई दूसरा फ़ंक्शन अलग ठोस प्रकार छिपा सकता है।
// Each function using "some Shape" chooses one hidden concrete type.
// Within the same function, it must always be the same concrete type.
func makeSquare(side: Double) -> some Shape {
Square(s: side) // fixed to Square for this function
}
let a = makeUnitCircle()
let b = makeUnitCircle()
print(a.area() == b.area()) // true for two unit circles
let q = makeSquare(side: 2)
print(q.area()) // 4.0केवल एक छिपा हुआ प्रकार
नियम: अपारदर्शी रिटर्न वाले फ़ंक्शन को हर संभावित पथ पर एक ही ठोस प्रकार लौटाना चाहिए। अलग-अलग शाखाएँ → संकलन त्रुटि।
// ❌ This would NOT compile, because different branches return different concrete types:
// func makeShape(flag: Bool) -> some Shape {
// if flag {
// return Circle(r: 1)
// } else {
// return Square(s: 1) // error: underlying type must be the same
// }
// }
// Rule: an opaque-returning function must always produce the same concrete type.जेनेरिक के साथ अपारदर्शिता
अपारदर्शी रिटर्न जेनेरिक के साथ संयोजित किए जा सकते हैं। कॉल करने वाले को Shape दिखाई देता है, जबकि आप Scaled<Circle> कार्यान्वयन को निजी रखते हैं।
// A generic decorator that also conforms to Shape
struct Scaled<S: Shape>: Shape {
let base: S
let k: Double
func area() -> Double { base.area() * k * k }
}
// Factory still hides the concrete generic type
func makeScaledUnitCircle(k: Double) -> some Shape {
Scaled(base: Circle(r: 1.0), k: k)
}
let s1 = makeScaledUnitCircle(k: 2)
print(s1.area()) // 4 * πअपारदर्शी प्रकार कब चुनें
अपारदर्शी प्रकारों का उपयोग तब करें जब:
- आप कार्यान्वयन छिपाना चाहते हों, लेकिन स्थैतिक टाइपिंग बनाए रखना चाहते हों।
- एपीआई को ठोस प्रकार उजागर किए बिना प्रोटोकॉल दृश्य लौटाना हो (जैसे,
Shape)। - आप पाइपलाइन/DSLs बनाते हों, जो जेनेरिक रहते हुए बिल्डरों को श्रृंखलाबद्ध करें।
(अगले पाठ में आप इसकी तुलना एग्ज़िस्टेंशियल से करेंगे।)
अपारदर्शी परिणाम की परिभाषा
त्वरित जाँच: some P क्या सुनिश्चित करता है?
पुनरावलोकन
पुनरावलोकन: अपारदर्शी परिणाम प्रकार (some P) ठोस प्रकारों को छिपाते हैं, फिर भी स्थैतिक dispatch बनाए रखते हैं। अंतर्निहित प्रकार प्रति फ़ंक्शन निश्चित होता है; स्वच्छ, तेज़ और एनकैप्सुलेटेड एपीआई के लिए इनका उपयोग करें।
एआई शिक्षक के साथ Swift सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 122
- पाठ
- 409
अक्सर पूछे जाने वाले प्रश्न
क्या “some P (अपारदर्शी परिणाम प्रकार): ठोस प्रकार छिपाना” पाठ निःशुल्क है?
हाँ — Swift Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “some P (अपारदर्शी परिणाम प्रकार): ठोस प्रकार छिपाना” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Swift Academy पाठ्यक्रम में कुल 3 पाठ शामिल हैं।
“some P (अपारदर्शी परिणाम प्रकार): ठोस प्रकार छिपाना” में मैं क्या सीखूँगा?
some P लौटाकर ठोस रिटर्न प्रकार छिपाइए और यह सुनिश्चित कीजिए कि वह P के अनुरूप हो; कॉल करने वालों को कार्यान्वयन उजागर किए बिना स्थिर प्रकार-जाँच का लाभ मिलता है। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Swift Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Swift Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Swift Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 3 में से 1वाँ पाठ है।
“some P (अपारदर्शी परिणाम प्रकार): ठोस प्रकार छिपाना” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Swift Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Swift Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- some P (अपारदर्शी परिणाम प्रकार): ठोस प्रकार छिपाना
- any P (एक्ज़िस्टेंशियल): समझौते और डायनेमिक डिस्पैच
- some, any और जेनेरिक्स में चुनाव