some कीवर्ड के साथ अपारदर्शी प्रकार
प्रकार की पहचान सुरक्षित रखते हुए उसे उजागर किए बिना फ़ंक्शन से अपारदर्शी प्रकार लौटाएँ।
some कीवर्ड के साथ अपारदर्शी प्रकार, CoddyKit पर Swift Academy का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Swift Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Swift Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
अपारदर्शी प्रकारों से हल होने वाली समस्या
any के साथ प्रोटोकॉल प्रकार लौटाने पर प्रकार की जानकारी खो जाती है। some इसे सुरक्षित रखते हुए कार्यान्वयन को छिपाता है।
protocol Shape { var area: Double { get } }
struct Circle: Shape { var area: Double { .pi * 4 } }some Protocol लौटाना
रिटर्न प्रकार के रूप में some Shape कॉलर को बताता है कि "मैं एक विशिष्ट Shape प्रकार लौटाता हूँ", लेकिन यह नहीं बताता कि वह कौन-सा है।
func makeShape() -> some Shape {
return Circle()
}
let s = makeShape()
print(s.area)प्रकार की पहचान सुरक्षित रहती है
क्योंकि some प्रकारों का अंतर्निहित प्रकार निश्चित होता है, कंपाइलर उन संक्रियाओं की अनुमति देता है जिनके लिए Self आवश्यक होता है।
func makeEquatableShape() -> some Shape & Equatable {
return Circle()
}
let a = makeEquatableShape()
let b = makeEquatableShape()
print(a == b) // works because types matchsome बनाम any
some अपारदर्शी है (एकल निश्चित प्रकार), जबकि any एग्ज़िस्टेंशियल है (रनटाइम पर कोई भी अनुरूप प्रकार)।
func withSome() -> some Shape { Circle() } // opaque
func withAny() -> any Shape { Circle() } // existentialSwiftUI Body में some
SwiftUI some View का उपयोग करता है, ताकि प्रत्येक view का body लेआउट के आंतरिक विवरण उजागर किए बिना एक ही सुसंगत प्रकार लौटाए।
struct ContentView: View {
var body: some View {
Text("Hello, World!")
}
}some के साथ अपारदर्शी पैरामीटर
Swift 5.7+ पैरामीटर की स्थिति में some Protocol की अनुमति देता है; यह जेनेरिक बाधाओं के लिए सिंटैक्टिक शॉर्टहैंड है।
func printArea(_ shape: some Shape) {
print(shape.area)
}
printArea(Circle())उलटे जेनेरिक
एक अपारदर्शी पैरामीटर some P, के बराबर होता है। कंपाइलर कॉल की जगह पर T का अनुमान लगा लेता है।
func doubled(_ value: some Numeric) -> some Numeric {
value * 2
}some पर बाधाएँ
आप प्रोटोकॉल को अपारदर्शी प्रकारों के साथ उसी तरह संयोजित कर सकते हैं, जैसे जेनेरिक के साथ करते हैं।
func process(_ item: some Codable & Hashable) {
let hash = item.hashValue
print(hash)
}अलग-अलग प्रकार लौटाना
एग्ज़िस्टेंशियल के विपरीत, अपारदर्शी प्रकारों के साथ अलग-अलग शाखाओं से अलग-अलग अनुरूप प्रकार नहीं लौटाए जा सकते।
// This would NOT compile:
// func shape(_ big: Bool) -> some Shape {
// big ? Circle() : Square() // ERROR: different types
// }प्रोटोकॉल में अपारदर्शी प्रकार
संबद्ध प्रकार वाले प्रोटोकॉल को some के साथ रिटर्न प्रकार के रूप में उपयोग करना आसान हो जाता है।
protocol Buildable { associatedtype Output; func build() -> Output }
func build(_ b: some Buildable) -> some Any {
b.build()
}some का चुनाव कब करें
जब आप एक ही सुसंगत प्रकार लौटाते हों और उसकी पहचान सुरक्षित रखना चाहते हों, तो some को प्राथमिकता दें। जब आपको अलग-अलग प्रकारों वाले संग्रह चाहिए हों, तब any का उपयोग करें।
var shapes: [any Shape] = [Circle(), Circle()]
let single: some Shape = Circle()त्वरित जाँच
some कीवर्ड रिटर्न प्रकार के बारे में क्या सुनिश्चित करता है?
पाठ का पुनरावलोकन
some ऐसे अपारदर्शी रिटर्न प्रकार बनाता है, जो ठोस प्रकार को छिपाते हुए उसकी प्रकार- पहचान सुरक्षित रखते हैं। SwiftUI का some View इसका मानक उदाहरण है। एकल-प्रकार वाले रिटर्न के लिए some और अलग-अलग प्रकारों वाले संग्रहों के लिए any का उपयोग करें।
एआई शिक्षक के साथ Swift सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 122
- पाठ
- 409
अक्सर पूछे जाने वाले प्रश्न
क्या “some कीवर्ड के साथ अपारदर्शी प्रकार” पाठ निःशुल्क है?
हाँ — Swift Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “some कीवर्ड के साथ अपारदर्शी प्रकार” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Swift Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“some कीवर्ड के साथ अपारदर्शी प्रकार” में मैं क्या सीखूँगा?
प्रकार की पहचान सुरक्षित रखते हुए उसे उजागर किए बिना फ़ंक्शन से अपारदर्शी प्रकार लौटाएँ। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Swift Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Swift Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Swift Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।
“some कीवर्ड के साथ अपारदर्शी प्रकार” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Swift Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Swift Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- जेनेरिक बाधाएँ और where क्लॉज़
- some कीवर्ड के साथ अपारदर्शी प्रकार
- any और प्रकार-उन्मूलन के साथ अस्तित्वात्मक प्रकार
- प्राथमिक संबद्ध प्रकार और टाइप किए गए Throws