Kotlin Academy · पाठ

वास्तविक कोड में सुरक्षित कॉल ?. और Elvis ?:

सुरक्षित कॉल को श्रृंखलाबद्ध करें और Elvis operator से fallback मान दें।

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

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

दो ऑपरेटर, बड़ा प्रभाव

सुरक्षित कॉल ?. किसी सदस्य को तभी कॉल करती है जब रिसीवर गैर-रिक्त हो। Elvis ऑपरेटर ?: बाईं ओर का मान रिक्त होने पर वैकल्पिक मान देता है।

सुरक्षित कॉल की मूल बातें

x?.member का परिणाम null होता है यदि x रिक्त है; अन्यथा यह member तक सामान्य रूप से पहुँचता है।

fun main() {
    val name: String? = "Kotlin"
    val len: Int? = name?.length
    println(len) // 6
    val nope: String? = null
    println(nope?.length) // null
}

Elvis ऑपरेटर की मूल बातें

x ?: default गैर-रिक्त होने पर x लौटाता है; अन्यथा दाईं ओर दिया गया default लौटाता है।

fun main() {
    val name: String? = null
    val display = name ?: "Anonymous"
    println(display) // Anonymous
}

सुरक्षित कॉल और Elvis को जोड़ना

सामान्य तरीका: obj?.member ?: default—मान पढ़ें या वैकल्पिक मान का उपयोग करें।

fun main() {
    val name: String? = null
    val length = name?.length ?: 0
    println("length = $length") // 0
}

सुरक्षित कॉल जोड़ना

कई स्तरों पर ?. जोड़ें—यदि कोई भी कड़ी रिक्त हो, तो पूरा एक्सप्रेशन रिक्त मान पर रुक जाता है।

class Address(val city: String?)
class User(val address: Address?)
fun main() {
    val u: User? = User(Address(null))
    val city = u?.address?.city ?: "Unknown"
    println(city) // Unknown
}

दाईं ओर Elvis से अपवाद उत्पन्न करना

Elvis की दाईं ओर कोई भी एक्सप्रेशन हो सकता है, जिसमें throw भी शामिल है—यह आवश्यक मान की जाँच के लिए उपयोगी है।

fun loadConfig(path: String?): String {
    val p = path ?: throw IllegalArgumentException("path required")
    return "loaded $p"
}
fun main() {
    println(loadConfig("/etc/app"))
    // loadConfig(null) // throws
}

विधियों के साथ सुरक्षित कॉल

सुरक्षित कॉल केवल प्रॉपर्टी एक्सेस ही नहीं, बल्कि किसी भी विधि पर काम करती हैं।

fun main() {
    val raw: String? = "  hello  "
    val cleaned = raw?.trim()?.uppercase() ?: ""
    println(cleaned) // HELLO
}

शर्तों में सुरक्षित कॉल

आप शर्तों के अंदर सुरक्षित कॉल का उपयोग कर सकते हैं। डिफ़ॉल्ट बूलियन मानों के लिए इसे Elvis के साथ जोड़ें।

fun main() {
    val name: String? = "Alice"
    if (name?.startsWith("A") == true) {
        println("Starts with A")
    }
}

return के साथ Elvis

गार्ड क्लॉज़ के लिए Elvis को return के साथ उपयोग करें: आवश्यक मान रिक्त होने पर फ़ंक्शन से जल्दी बाहर निकलें।

fun process(input: String?) {
    val safe = input ?: return
    println("processing $safe")
}
fun main() {
    process("abc")
    process(null) // returns silently
}

continue/break के साथ Elvis

लूप के अंदर, संक्षिप्त रिक्तता-प्रबंधन के लिए Elvis continue या break पर तुरंत नियंत्रण भेज सकता है।

fun main() {
    val items: List<String?> = listOf("a", null, "b", null, "c")
    for (item in items) {
        val v = item ?: continue
        print("$v ")
    }
    println() // a b c
}

व्यावहारिक उदाहरण: कॉन्फ़िगरेशन देखना

सुरक्षित कॉल और Elvis मिलकर एक ऐसी एक-पंक्ति अभिव्यक्ति बनाते हैं जो डिफ़ॉल्ट मान के साथ वैकल्पिक कॉन्फ़िगरेशन पढ़ती है।

class Config(val timeoutMs: Int?, val host: String?)
fun main() {
    val cfg: Config? = Config(null, "prod.example.com")
    val timeout = cfg?.timeoutMs ?: 5000
    val host = cfg?.host ?: "localhost"
    println("$host @ $timeout ms")
}

त्वरित जाँच

जब user रिक्त हो, तो user?.email ?: "unknown" का परिणाम क्या होगा?

पुनरावलोकन

संक्षिप्त और रिक्तता-सुरक्षित कोड के लिए सुरक्षित कॉल (?.) और Elvis (?:) को जोड़ें। अनुपस्थित डेटा पर गार्ड क्लॉज़ के साथ जल्दी बाहर निकलने के लिए Elvis को throw या return के साथ उपयोग करें।

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

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

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

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

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

क्या “वास्तविक कोड में सुरक्षित कॉल ?. और Elvis ?:” पाठ निःशुल्क है?

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

“वास्तविक कोड में सुरक्षित कॉल ?. और Elvis ?:” में मैं क्या सीखूँगा?

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

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

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

“वास्तविक कोड में सुरक्षित कॉल ?. और Elvis ?:” पाठ पूरा करने में कितना समय लगता है?

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

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

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

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

  1. Nullable प्रकार और ? संशोधक
  2. वास्तविक कोड में सुरक्षित कॉल ?. और Elvis ?:
  3. Nullable receivers के साथ let, also और run
  4. !! Operator: इससे कब और क्यों बचें
← Kotlin Academy पर वापस जाएँ