Swift Academy · पाठ

Constraints (where) और प्रकार-अनुमान

where (जैसे Equatable/Comparable या Element constraints) से generic कोड पर बाधाएँ लगाएँ और देखें कि Swift call site पर generic प्रकारों का अनुमान कैसे लगाता है।

पाठ 2, कुल 3 में से8 चरण

Constraints (where) और प्रकार-अनुमान, CoddyKit पर Swift Academy का एक निःशुल्क पाठ है। यह 3 में से 2वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Swift Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Swift Academy पाठ्यक्रम में कुल 3 पाठ शामिल हैं।

प्रतिबंध क्यों?

प्रतिबंध जोड़ें ताकि जेनेरिक कोड कुछ विशेष संक्रियाओं (जैसे == या <) का उपयोग कर सके। Swift का प्रकार अनुमान फिर कॉल के समय ठोस प्रकार चुन लेता है।

Equatable प्रतिबंध

where T: Equatable समानता जाँच की अनुमति देता है। इसके बिना, किसी भी T के लिए == उपलब्ध नहीं होता।

// Find the first index of value in an array of T
func indexOf<T>(_ value: T, in array: [T]) -> Int? where T: Equatable {
    for (i, x) in array.enumerated() {
        if x == value { return i }        // allowed because T: Equatable
    }
    return nil
}
print(indexOf(3, in: [1,2,3,2]) ?? -1)     // 2
print(indexOf("b", in: ["a","b","c"]) ?? -1)  // 1

Comparable प्रतिबंध

T: Comparable जैसे प्रतिबंध का उपयोग करने से < जैसी क्रम-निर्धारण संक्रियाएँ संभव हो जाती हैं।

// Return the minimum value of a collection when elements are Comparable
func minimum<T: Comparable>(_ xs: [T]) -> T? {
    guard var best = xs.first else { return nil }
    for x in xs.dropFirst() {
        if x < best { best = x }
    }
    return best
}
print(minimum([7,3,9]) ?? -1)    // 3
print(minimum(["b","a","c"]) ?? "?") // "a"

where के साथ एक्सटेंशन

केवल कुछ विशेष तत्व प्रकारों के लिए API जोड़ने हेतु where Element: ... का उपयोग करें (यहाँ, Equatable वाली सारणियों के लिए)।

// Add a helper only when the array's Element is Equatable
extension Array where Element: Equatable {
    func removingDuplicates() -> [Element] {
        var seen: [Element] = []
        for x in self {
            if !seen.contains(x) { seen.append(x) }
        }
        return seen
    }
}
print([1,2,2,3].removingDuplicates())   // [1,2,3]

एकाधिक प्रतिबंध

प्रतिबंधों को मिलाएँ: जेनेरिक प्रकार और उसके संबद्ध प्रकारों पर प्रतिबंध लगाएँ (जैसे, S.Element: Equatable)।

// Require both Sequence and Equatable elements; force same-type relationship
func allEqual<S>(_ s: S) -> Bool
where S: Sequence, S.Element: Equatable {
    var it = s.makeIterator()
    guard let first = it.next() else { return true }
    while let v = it.next() { if v != first { return false } }
    return true
}
print(allEqual([2,2,2]))   // true
print(allEqual([1,2,1]))   // false

व्यवहार में अनुमान

Swift तर्कों और संदर्भ से जेनेरिक पैरामीटर का अनुमान लगा लेता है, इसलिए आपको <T> स्पष्ट रूप से कम ही लिखना पड़ता है।

// Inference: compiler deduces concrete types
let i = indexOf(10, in: [5,10,15])   // T is Int
let j = minimum(["z","x"])           // T is String
print(i ?? -1, j ?? "")

where का अर्थ

त्वरित जाँच: where क्लॉज़ क्या करता है?

पुनरावलोकन

पुनरावलोकन: where से जेनेरिक पर प्रतिबंध लगाएँ (जैसे, T: Equatable, Element: Comparable) और कॉल के समय ठोस प्रकार चुनने के लिए Swift के प्रकार अनुमान पर निर्भर रहें।

शुरुआत निःशुल्क

एआई शिक्षक के साथ Swift सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
122
पाठ
409

अक्सर पूछे जाने वाले प्रश्न

क्या “Constraints (where) और प्रकार-अनुमान” पाठ निःशुल्क है?

हाँ — Swift Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “Constraints (where) और प्रकार-अनुमान” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Swift Academy पाठ्यक्रम में कुल 3 पाठ शामिल हैं।

“Constraints (where) और प्रकार-अनुमान” में मैं क्या सीखूँगा?

where (जैसे Equatable/Comparable या Element constraints) से generic कोड पर बाधाएँ लगाएँ और देखें कि Swift call site पर generic प्रकारों का अनुमान कैसे लगाता है। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Swift Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Swift Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Swift Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 3 में से 2वाँ पाठ है।

“Constraints (where) और प्रकार-अनुमान” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Swift Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Swift Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. Generic फ़ंक्शन और प्रकार
  2. Constraints (where) और प्रकार-अनुमान
  3. कलेक्शन पर generic एल्गोरिदम
← Swift Academy पर वापस जाएँ