Kotlin Academy · पाठ

फ़ंक्शन में Lambdas पास करना

Lambdas को आर्ग्युमेंट के रूप में पास करें और trailing lambda सिंटैक्स का उपयोग करें।

पाठ 2, कुल 4 में से13 चरण

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

लैम्ब्डा स्वीकार करने वाले फ़ंक्शन

उच्च-क्रम वाला फ़ंक्शन वह होता है जो किसी फ़ंक्शन (जैसे लैम्ब्डा) को पैरामीटर के रूप में लेता है। map, filter और forEach इसी तरह काम करते हैं।

उच्च-क्रम वाले फ़ंक्शन की घोषणा

पैरामीटर के प्रकार के रूप में फ़ंक्शन प्रकार का उपयोग करें।
fun applyTwice(n: Int, op: (Int) -> Int): Int {
    return op(op(n))
}
println(applyTwice(3, { it * 2 }))  // 12

ट्रेलिंग लैम्ब्डा सिंटैक्स

यदि अंतिम पैरामीटर कोई फ़ंक्शन है, तो आप लैम्ब्डा को कोष्ठकों के बाहर ले जा सकते हैं। इसे 'ट्रेलिंग लैम्ब्डा' सिंटैक्स कहते हैं।
fun applyTwice(n: Int, op: (Int) -> Int) = op(op(n))

// Standard:
applyTwice(3, { it * 2 })
// Trailing lambda:
applyTwice(3) { it * 2 }

कोष्ठकों के बिना ट्रेलिंग लैम्ब्डा

जब लैम्ब्डा ही ONLY तर्क हो, तो आप कोष्ठकों को पूरी तरह छोड़ सकते हैं।
fun execute(block: () -> Unit) = block()

// With parens:
execute({ println("Hello") })
// Without parens (idiomatic):
execute { println("Hello") }

लैम्ब्डा चर पास करना

आप किसी संग्रहीत लैम्ब्डा का संदर्भ उसके चर नाम का उपयोग करके पास कर सकते हैं।
val double = { n: Int -> n * 2 }
fun applyTwice(n: Int, op: (Int) -> Int) = op(op(n))
println(applyTwice(5, double))  // 20

:: के साथ फ़ंक्शन संदर्भ

लैम्ब्डा के साथ संगत तर्क के रूप में किसी नामित फ़ंक्शन को पास करने के लिए :: का उपयोग करें।
fun triple(n: Int) = n * 3
fun applyTwice(n: Int, op: (Int) -> Int) = op(op(n))
println(applyTwice(2, ::triple))  // 18

एकाधिक लैम्ब्डा पैरामीटर

एक फ़ंक्शन कई लैम्ब्डा पैरामीटर स्वीकार कर सकता है। केवल अंतिम पैरामीटर के लिए ट्रेलिंग लैम्ब्डा सिंटैक्स का उपयोग किया जा सकता है।
fun transform(
    value: Int,
    before: (Int) -> Int,
    after: (Int) -> Int
) = after(before(value))

println(transform(5, { it * 2 }, { it + 1 }))  // 11

फ़िल्टर में लैम्ब्डा पास करना

फ़िल्टर एक शर्त-जाँच लैम्ब्डा स्वीकार करता है—अर्थात एलिमेंट से बूलियन मान लौटाने वाला फ़ंक्शन।
val numbers = listOf(1, 2, 3, 4, 5, 6)
val evens = numbers.filter { it % 2 == 0 }
println(evens)  // [2, 4, 6]

उच्च-क्रमीय फ़ंक्शनों को जोड़ना

अभिव्यक्तिपूर्ण डेटा-प्रवाह बनाने के लिए कई उच्च-क्रमीय फ़ंक्शन कॉल जोड़ें।
val result = (1..10)
    .filter { it % 2 != 0 }  // odds
    .map { it * it }          // square
    .take(3)                  // first 3
println(result)  // [1, 9, 25]

लैम्ब्डा द्वारा वैरिएबल कैप्चर करना

लैम्ब्डा आसपास के दायरे से वैरिएबल कैप्चर कर सकते हैं (क्लोज़र)। Kotlin में वे var को कैप्चर करके उसका मान बदल भी सकते हैं।
var total = 0
listOf(1, 2, 3, 4).forEach { total += it }
println(total)  // 10

फ़ंक्शन से लैम्ब्डा लौटाना

उच्च-क्रमीय फ़ंक्शन लैम्ब्डा भी लौटा सकते हैं, जिससे फ़ैक्टरी फ़ंक्शन बनाए जा सकते हैं।
fun multiplierOf(factor: Int): (Int) -> Int {
    return { n -> n * factor }
}
val double = multiplierOf(2)
val triple = multiplierOf(3)
println(double(5))  // 10
println(triple(5))  // 15

त्वरित जाँच

ट्रेलिंग लैम्ब्डा सिंटैक्स का उपयोग करके आप लैम्ब्डा को कोष्ठकों के बाहर कब ले जा सकते हैं?

पुनरावलोकन

उच्च-क्रमीय फ़ंक्शन लैम्ब्डा को पैरामीटर के रूप में लेते हैं। जब लैम्ब्डा अंतिम हो, तो ट्रेलिंग लैम्ब्डा सिंटैक्स उसे कोष्ठकों के बाहर ले जाता है। :: नामित फ़ंक्शन संदर्भ पास करता है। अगला विषय: अंतर्निहित 'इट' पैरामीटर!
शुरुआत निःशुल्क

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

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

पाठ्यक्रम
51
पाठ
203

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

क्या “फ़ंक्शन में Lambdas पास करना” पाठ निःशुल्क है?

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

“फ़ंक्शन में Lambdas पास करना” में मैं क्या सीखूँगा?

Lambdas को आर्ग्युमेंट के रूप में पास करें और trailing lambda सिंटैक्स का उपयोग करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Kotlin Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

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

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

“फ़ंक्शन में Lambdas पास करना” पाठ पूरा करने में कितना समय लगता है?

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

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

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

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

  1. Lambda क्या है? सिंटैक्स और प्रकार
  2. फ़ंक्शन में Lambdas पास करना
  3. it: निहित पैरामीटर
  4. संग्रहों पर filter, map और find
← Kotlin Academy पर वापस जाएँ