flatMap और चेनिंग
नेस्टेड कलेक्शन को समतल कीजिए और रूपांतरणों की चेन बनाइए।
flatMap और चेनिंग, CoddyKit पर Swift Academy का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Swift Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Swift Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
flatMap के दो रूप
किसी अनुक्रम पर flatMap नेस्टिंग के एक स्तर को समतल करता है। यह ऐसा क्लोज़र लागू करता है जो हर तत्व के लिए एक अनुक्रम लौटाता है, फिर उन सभी अनुक्रमों को जोड़कर एक समतल ऐरे बनाता है।
नेस्टेड ऐरे को समतल करना
ऐरे के ऐरे को एकल ऐरे में बदलें:
let nested = [[1, 2], [3, 4], [5]]
let flat = nested.flatMap { $0 }
print(flat) // [1, 2, 3, 4, 5]अनुक्रम बनाने वाला flatMap
हर तत्व कई तत्वों में फैल सकता है:
let nums = [1, 2, 3]
let expanded = nums.flatMap { [$0, $0 * 10] }
print(expanded) // [1, 10, 2, 20, 3, 30]हर संयोजन की जोड़ी बनाना
क्रॉस-प्रोडक्ट बनाने के लिए flatMap उपयोगी है:
let suits = ["Hearts", "Spades"]
let ranks = ["A", "K"]
let deck = suits.flatMap { suit in ranks.map { "\($0) of \(suit)" } }
print(deck) // ["A of Hearts", "K of Hearts", "A of Spades", "K of Spades"]flatMap और compactMap
पहले flatMap का उपयोग वैकल्पिक मानों को खोलने के लिए भी किया जाता था, लेकिन अब यह भूमिका compactMap को मिल गई है। आज:
flatMap— नेस्टेड अनुक्रमों को समतल करता हैcompactMap— वैकल्पिक परिणामों सेnilहटाता है
शब्दों को वर्णों में फैलाना
हर स्ट्रिंग को उसके वर्णों में फैलाएँ:
let words = ["hi", "yo"]
let chars = words.flatMap { Array($0) }
print(chars) // ["h", "i", "y", "o"]उप-परिणामों को जोड़ना
नेस्टेड मॉडल ऑब्जेक्ट से वस्तुओं को एकत्र करें:
struct Team { let members: [String] }
let teams = [Team(members: ["Ann", "Bo"]), Team(members: ["Cy"])]
let all = teams.flatMap { $0.members }
print(all) // ["Ann", "Bo", "Cy"]रूपांतरणों की श्रृंखला बनाना
असली शक्ति श्रृंखला बनाने में है: map, filter, flatMap और reduce ऊपर से नीचे पढ़ने पर डेटा-प्रवाह जैसे लगते हैं। हर चरण अगले चरण के लिए एक नया अनुक्रम बनाता है।
एक संपूर्ण डेटा-प्रवाह
फ़िल्टर करें, समतल करें, रूपांतरित करें, फिर जोड़ें:
let groups = [[1, 2, 3], [4, 5], [6]]
let result = groups
.flatMap { $0 }
.filter { $0 % 2 == 0 }
.map { $0 * $0 }
.reduce(0, +)
print(result) // 4 + 16 + 36 = 56flatMap फिर compactMap
पहले समतल करें, फिर केवल पार्स किए जा सकने वाले मान रखें:
let rows = [["1", "x"], ["3", "4"]]
let nums = rows
.flatMap { $0 }
.compactMap { Int($0) }
print(nums) // [1, 3, 4]श्रृंखलाओं को पठनीय बनाए रखना
हर चरण को अपनी पंक्ति में रखें और जब श्रृंखला लंबी हो जाए, तब बीच के परिणामों को नाम दें। सब कुछ एक ही अभिव्यक्ति में समेटने से बेहतर पठनीयता है।
let names = ["ann", "BO", "cy"]
let titled = names
.map { $0.lowercased() }
.map { $0.capitalized }
.sorted()
print(titled) // ["Ann", "Bo", "Cy"]त्वरित जाँच
[[1, 2], [3]].flatMap { $0 } क्या लौटाता है?
पुनरावलोकन
आपने समतलीकरण और श्रृंखला बनाना सीखा:
flatMapनेस्टेड अनुक्रमों के एक स्तर को समतल करता है- वैकल्पिक मान हटाने के लिए flatMap नहीं, बल्कि
compactMapका उपयोग करें - पठनीय डेटा-प्रवाह बनाने के लिए
filter/map/flatMap/reduceको श्रृंखला में जोड़ें - लंबी श्रृंखलाओं को स्पष्ट रखने के लिए हर चरण को अलग पंक्ति में रखें
पाठ्यक्रम पूरा हुआ! अगला विषय: विलंबित अनुक्रम।
एआई शिक्षक के साथ Swift सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 122
- पाठ
- 409
अक्सर पूछे जाने वाले प्रश्न
क्या “flatMap और चेनिंग” पाठ निःशुल्क है?
हाँ — Swift Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “flatMap और चेनिंग” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Swift Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“flatMap और चेनिंग” में मैं क्या सीखूँगा?
नेस्टेड कलेक्शन को समतल कीजिए और रूपांतरणों की चेन बनाइए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Swift Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Swift Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Swift Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।
“flatMap और चेनिंग” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Swift Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Swift Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- map और compactMap
- filter और विधेय
- reduce और reduce(into:)
- flatMap और चेनिंग