Kotlin Academy · पाठ

is और as ऑपरेटर

प्रकार की जाँच और कास्ट

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

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

प्रकारों की जाँच और कास्टिंग

Kotlin रनटाइम पर प्रकारों के साथ काम करने के लिए दो ऑपरेटर देता है:

  • is जाँचता है कि कोई मान किसी प्रकार का है या नहीं
  • as किसी मान को किसी प्रकार में कास्ट करता है

दोनों के सुरक्षित रूप भी होते हैं, जिन्हें आप यहाँ सीखेंगे।

is ऑपरेटर

is एक बूलियन मान लौटाता है, जो बताता है कि कोई मान किसी प्रकार से मेल खाता है या नहीं।

यह स्मार्ट कास्ट का आधार है।

fun main() {
    val x: Any = "hello"
    println(x is String)
    println(x is Int)
}

!is के साथ निषेधात्मक जाँच

यह जाँचने के लिए !is का उपयोग करें कि कोई मान दिए गए प्रकार का NOT है।

रक्षा-शर्तों में यह स्वाभाविक रूप से पढ़ा जाता है।

fun main() {
    val x: Any = 42
    if (x !is String) {
        println("not a string")
    }
}

as ऑपरेटर

as स्पष्ट कास्ट करता है। यदि मान वास्तव में उसी प्रकार का है, तो वह सही प्रकार के रूप में वापस मिलता है।

जब कंपाइलर स्वयं प्रकार का अनुमान न लगा सके, तब इसका उपयोग करें।

fun main() {
    val x: Any = "hello"
    val s = x as String
    println(s.length)
}

as कब विफल होता है

यदि मान लक्ष्य प्रकार का नहीं है, तो as एक ClassCastException उत्पन्न करता है।

यह असुरक्षित रूप है, इसलिए इसका उपयोग केवल पूरी तरह सुनिश्चित होने पर करें।

fun main() {
    val x: Any = 42
    try {
        val s = x as String
        println(s)
    } catch (e: ClassCastException) {
        println("Cannot cast Int to String")
    }
}

सुरक्षित कास्ट as?

as? सुरक्षित कास्ट है। यह मान को उस प्रकार में कास्ट करके लौटाता है या कास्ट संभव न होने पर null लौटाता है।

कोई अपवाद उत्पन्न नहीं होता।

fun main() {
    val x: Any = 42
    val s = x as? String
    println(s)
}

Elvis के साथ सुरक्षित कास्ट

कास्ट विफल होने पर वैकल्पिक मान देने के लिए as? को Elvis के साथ मिलाएँ।

यह बिना क्रैश वाला एक साफ़-सुथरा तरीका है।

fun main() {
    val x: Any = 42
    val s = (x as? String) ?: "default"
    println(s)
}

is स्मार्ट कास्ट सक्रिय करता है

is की जाँच के बाद आमतौर पर आपको as की आवश्यकता नहीं होती, क्योंकि स्मार्ट कास्ट सक्रिय हो जाते हैं।

स्पष्ट as का उपयोग केवल तब करें जब स्मार्ट कास्ट लागू न हो सके।

fun main() {
    val x: Any = "smart"
    if (x is String) {
        println(x.uppercase()) // smart cast, no as needed
    }
}

संग्रहों में कास्टिंग

मिश्रित संग्रहों को फ़िल्टर करते समय सुरक्षित कास्ट उपयोगी होते हैं।

filterIsInstance आंतरिक रूप से is का उपयोग करके केवल मेल खाने वाले तत्व रखता है।

fun main() {
    val items: List<Any> = listOf(1, "two", 3, "four")
    val strings = items.filterIsInstance<String>()
    println(strings)
}

सही ऑपरेटर चुनना

एक सरल मार्गदर्शिका:

  • बूलियन मान चाहिए? is का उपयोग करें
  • प्रकार को लेकर निश्चित हैं? as का उपयोग करें
  • निश्चित नहीं हैं? वैकल्पिक मान के साथ as? का उपयोग करें
fun describe(x: Any): String {
    val text = x as? String ?: return "not text"
    return "text of length " + text.length
}

fun main() {
    println(describe("hello"))
    println(describe(99))
}

सबको एक साथ समझना

प्रकार वाले ऑपरेटर आपको पूरा नियंत्रण देते हैं:

  • is / !is प्रकारों की जाँच करते हैं
  • as कास्ट करता है, लेकिन अपवाद उत्पन्न कर सकता है
  • as? सुरक्षित रूप से कास्ट करता है और विफल होने पर null लौटाता है
fun main() {
    val values: List<Any> = listOf(1, "hi", 2.5)
    for (v in values) {
        when {
            v is Int -> println("int " + v)
            v is String -> println("string " + v)
            else -> println("other")
        }
    }
}

त्वरित जाँच

is और as की अपनी समझ जाँचें।

पुनरावलोकन

आपने प्रकार वाले ऑपरेटर सीखे:

  • प्रकार की जाँच के लिए is और !is
  • ऐसे कास्ट के लिए as जो अपवाद उत्पन्न कर सकते हैं
  • null लौटाने वाले सुरक्षित कास्ट के लिए as?

अब आप सभी स्थितियों को समेटने के लिए when को पूर्ण बनाएँगे।

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

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

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

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

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

क्या “is और as ऑपरेटर” पाठ निःशुल्क है?

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

“is और as ऑपरेटर” में मैं क्या सीखूँगा?

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

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

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

“is और as ऑपरेटर” पाठ पूरा करने में कितना समय लगता है?

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

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

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

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

  1. when को अभिव्यक्ति के रूप में
  2. स्मार्ट कास्ट
  3. is और as ऑपरेटर
  4. संपूर्ण when
← Kotlin Academy पर वापस जाएँ