Sharing कम करने के लिए value types
अनचाहे sharing से बचने के लिए value types को प्राथमिकता दें: assignment पर struct/enum की कॉपी बनती है, जिससे isolation, पूर्वानुमेयता और thread safety बेहतर होती है।
Sharing कम करने के लिए value types, CoddyKit पर Swift Academy का एक निःशुल्क पाठ है। यह 3 में से 3वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Swift Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Swift Academy पाठ्यक्रम में कुल 3 पाठ शामिल हैं।
मान प्रकार क्यों
Swift के स्ट्रक्ट/एनम मान प्रकार हैं: असाइन करने और पास करने पर प्रतिलिपियाँ बनती हैं। इससे अनचाहा साझा उपयोग कम होता है और स्थिति को समझना आसान बनता है।
संदर्भ साझा करना (क्लास)
क्लास संदर्भ प्रकार हैं: कई वेरिएबल एक ही इंस्टेंस की ओर संकेत कर सकते हैं, इसलिए उपनामों के माध्यम से परिवर्तन फैल जाते हैं।
final class Bag {
var items: [String]
init(_ items: [String]) { self.items = items }
}
let a = Bag(["pen"])
let b = a // REF COPY: a and b refer to the same object
b.items.append("book")
print(a.items) // ["pen","book"] — mutated via b
print(b.items)स्वतंत्र प्रतिलिपियाँ (स्ट्रक्ट)
स्ट्रक्ट असाइन करने पर प्रतिलिपि बनाते हैं। प्रत्येक वेरिएबल अपने डेटा का स्वामी होता है; परिवर्तन उसी तक सीमित रहते हैं।
struct Point { var x: Int; var y: Int }
var p1 = Point(x: 1, y: 2)
var p2 = p1 // VALUE COPY: independent
p2.x = 99
print(p1.x, p2.x) // 1, 99 — p1 unaffectedलिखने पर प्रतिलिपि बनाने वाले संग्रह
सरणी/शब्दकोश/समुच्चय लिखने पर प्रतिलिपि बनाने वाले मान प्रकार हैं। जब आप ऐसे सरणी में परिवर्तन करते हैं जिसके कई संदर्भ हों, तो Swift एक नई प्रतिलिपि बनाता है।
var a1 = [1,2,3]
var a2 = a1 // copy-on-write handle
a2.append(4) // triggers copy if a1 is uniquely referenced
print(a1) // [1,2,3]
print(a2) // [1,2,3,4]शुद्ध-शैली के अपडेट
लगभग-शुद्ध API डिज़ाइन करें: एक मान स्वीकार करें और एक नया मान लौटाएँ। कॉल करने वाले अप्रत्याशित साझा परिवर्तनों से बचते हैं।
struct Profile {
var name: String
var tags: [String]
}
func addTag(_ p: Profile, _ tag: String) -> Profile {
var copy = p // work on a value copy
copy.tags.append(tag) // caller gets a new updated value
return copy
}
let pA = Profile(name: "Ana", tags: [])
let pB = addTag(pA, "swift")
print(pA.tags) // []
print(pB.tags) // ["swift"]समझदारी से चुनें
दिशानिर्देश:
- छोटे, अपरिवर्तनीय या स्थानीय रूप से बदले जाने वाले डेटा के लिए स्ट्रक्ट को प्राथमिकता दें।
- जब पहचान, साझा परिवर्तनीय स्थिति या विरासत आवश्यक हो, तब क्लास का उपयोग करें।
- मान प्रकार साझा उपयोग कम करते हैं और समवर्ती निष्पादन को समझना अधिक सुरक्षित बनाते हैं।
मान बनाम संदर्भ साझा करना
त्वरित जाँच: मान प्रकार अनचाहे साझा उपयोग से बचने में कैसे मदद करते हैं?
पुनरावृत्ति
पुनरावृत्ति: स्ट्रक्ट/एनम मान होते हैं। साझा परिवर्तनीय स्थिति को कम करने के लिए इनका उपयोग करें। संग्रह लिखने पर प्रतिलिपि बनाने की प्रक्रिया अपनाते हैं, इसलिए परिवर्तन अन्य धारकों के लिए अप्रत्याशित नहीं होते।
एआई शिक्षक के साथ Swift सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 122
- पाठ
- 409
अक्सर पूछे जाने वाले प्रश्न
क्या “Sharing कम करने के लिए value types” पाठ निःशुल्क है?
हाँ — Swift Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “Sharing कम करने के लिए value types” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Swift Academy पाठ्यक्रम में कुल 3 पाठ शामिल हैं।
“Sharing कम करने के लिए value types” में मैं क्या सीखूँगा?
अनचाहे sharing से बचने के लिए value types को प्राथमिकता दें: assignment पर struct/enum की कॉपी बनती है, जिससे isolation, पूर्वानुमेयता और thread safety बेहतर होती है। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Swift Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Swift Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Swift Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 3 में से 3वाँ पाठ है।
“Sharing कम करने के लिए value types” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Swift Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Swift Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- ARC की मूल बातें: strong / weak / unowned
- Retain cycle और weak/unowned से उन्हें तोड़ना
- Sharing कम करने के लिए value types