Avatar ·

Kotlin में ?: ऑपरेटर क्या करता है? (एल्विस ऑपरेटर)

नमस्ते! मैंने अभी Java के बाद Kotlin सीखना शुरू किया है और एक अजीब ?: ऑपरेटर देखा। मैंने इसे किसी और के कोड में देखा, लेकिन समझ नहीं पाया कि यह क्या करता है। यहाँ एक उदाहरण है जो मुझे मिला: ```kotlin val name: String? = null val displayName = name ?: "अतिथि" println(displayName) // "अतिथि" प्रिंट करता है ``` अगर मैं इसे if-else के माध्यम से लिखूं, तो इसमें 3-4 लाइनें लगती हैं। तो क्या ?: एक संक्षिप्त सिंटैक्स है? लेकिन मुझे यकीन नहीं है कि इसका उपयोग कब करना चाहिए और कब सामान्य जाँच से काम चलाना चाहिए। मैंने यह अजीब कोड भी देखा: ```kotlin val length = text?.length ?: 0 ``` यहाँ पहले ?. (safe call) आता है, फिर ?:। क्या यह वैध है? और अगर text null है तो क्या होगा? कृपया समझाएँ कि यह ऑपरेटर कैसे काम करता है, यह सामान्य if-else से कैसे अलग है, और क्या इसके कोई नुकसान हैं। पहले से धन्यवाद!