Kotlin

Kotlin में रनटाइम टाइप जांच

Spread the love

Kotlin, स्थिर रूप से टाइप किया गया होने के कारण, अधिकांश प्रकार की जाँच संकलन के दौरान करता है। हालाँकि, ऐसी स्थितियाँ उत्पन्न होती हैं जहाँ गतिशील व्यवहार या मज़बूत त्रुटि संचालन के लिए रनटाइम प्रकार की जाँच आवश्यक होती है। यह लेख रनटाइम पर Kotlin चर के प्रकार का निर्धारण करने के दो प्रभावी तरीकों का पता लगाता है।

विषय-सूची

is कीवर्ड का उपयोग करना

is कीवर्ड रनटाइम प्रकार की जाँच के लिए सबसे सरल और कुशल तरीका प्रदान करता है। यदि चर निर्दिष्ट प्रकार या उप-प्रकार का है, तो यह true देता है, अन्यथा false। यह चर के प्रकार के आधार पर सशर्त तर्क की सुविधा प्रदान करता है।


fun checkTypeWithIs(variable: Any) {
    when (variable) {
        is String -> println("चर एक String है: $variable")
        is Int -> println("चर एक Int है: $variable")
        is Double -> println("चर एक Double है: $variable")
        else -> println("चर एक अज्ञात प्रकार का है: ${variable?.javaClass?.name ?: "null"}")
    }
}

fun main() {
    val myString = "Hello, Kotlin!"
    val myInt = 10
    val myDouble = 3.14
    val myNull: String? = null

    checkTypeWithIs(myString) // आउटपुट: चर एक String है: Hello, Kotlin!
    checkTypeWithIs(myInt)    // आउटपुट: चर एक Int है: 10
    checkTypeWithIs(myDouble) // आउटपुट: चर एक Double है: 3.14
    checkTypeWithIs(myNull)   // आउटपुट: चर एक अज्ञात प्रकार का है: null
}

यह बेहतर उदाहरण क्लीनर कोड के लिए when अभिव्यक्ति का उपयोग करता है और null मानों को सुचारू रूप से संभालता है। महत्वपूर्ण रूप से, Kotlin के स्मार्ट कास्ट when शाखाओं के भीतर स्पष्ट कास्टिंग की आवश्यकता को समाप्त करते हैं। एक सफल is जांच के बाद, चर को स्वचालित रूप से जाँचे गए प्रकार के रूप में माना जाता है।

qualifiedName गुण का उपयोग करना

यह विधि एक अधिक प्रोग्रामेटिक दृष्टिकोण प्रदान करती है, जो आदर्श है जब आपको एक स्ट्रिंग के रूप में प्रकार के नाम की आवश्यकता होती है। यह ::class गुण और परिणामी KClass उदाहरण के qualifiedName गुण का उपयोग करता है।


fun checkTypeWithQualifiedName(variable: Any) {
    val typeName = variable::class.qualifiedName ?: "Unknown Type"
    println("चर का प्रकार है: $typeName")
}

fun main() {
    val myString = "Hello, Kotlin!"
    val myInt = 10
    val myList = listOf(1, 2, 3)
    val myNull: String? = null

    checkTypeWithQualifiedName(myString) // आउटपुट: चर का प्रकार है: kotlin.String
    checkTypeWithQualifiedName(myInt)    // आउटपुट: चर का प्रकार है: kotlin.Int
    checkTypeWithQualifiedName(myList)   // आउटपुट: चर का प्रकार है: kotlin.collections.List
    checkTypeWithQualifiedName(myNull)   // आउटपुट: चर का प्रकार है: kotlin.String
}

इस संशोधित उदाहरण में संभावित शून्य मानों को अधिक मज़बूती से संभालने के लिए एल्विस ऑपरेटर (?:) का उपयोग करके शून्य सुरक्षा शामिल है। पूर्ण योग्य नाम लौटाया जाता है, जो लॉगिंग, डीबगिंग या स्ट्रिंग प्रतिनिधित्व के आधार पर गतिशील प्रकार के संचालन के लिए उपयोगी है। हालाँकि, साधारण प्रकार की जाँच के लिए, is कीवर्ड अधिक कुशल रहता है।

संक्षेप में, दोनों विधियाँ रनटाइम पर किसी चर के प्रकार का निर्धारण करने के मूल्यवान तरीके प्रदान करती हैं। is कीवर्ड सशर्त तर्क में उत्कृष्टता प्राप्त करता है, जबकि qualifiedName प्रोग्रामेटिक परिदृश्यों में चमकता है जिसमें स्ट्रिंग के रूप में प्रकार के नाम की आवश्यकता होती है। सही विधि का चयन आपके एप्लिकेशन की विशिष्ट आवश्यकताओं पर निर्भर करता है।

प्रातिक्रिया दे

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *