Kotlin में !! (डबल एक्सक्लेमेशन मार्क) ऑपरेटर क्या करता है और इसका उपयोग कब करना चाहिए?
सभी को नमस्ते! मैंने अभी-अभी Java के बाद Kotlin सीखना शुरू किया है और `!!` ऑपरेटर को समझ नहीं पा रहा हूँ। Kotlin को null-सुरक्षा के लिए सराहा जाता है, लेकिन यह डबल एक्सक्लेमेशन मार्क, जैसा कि मैंने समझा, इसके विपरीत NullPointerException उत्पन्न कर सकता है।
मैं नोट्स के लिए एक छोटा एप्लिकेशन लिख रहा हूँ। मेरे पास एक फंक्शन है जो डेटाबेस में ID द्वारा उपयोगकर्ता को खोजता है और उसका नाम लौटाता है। यदि उपयोगकर्ता नहीं मिलता है, तो null लौटाया जाता है। यहाँ कोड का उदाहरण है:
```kotlin
fun getUserName(userId: Int): String? {
// यदि उपयोगकर्ता नहीं मिलता है तो null लौटाता है
return database.findUser(userId)?.name
}
```
फिर मैं इस फंक्शन को कॉल करता हूँ और TextView में नाम प्रदर्शित करना चाहता हूँ:
```kotlin
val name = getUserName(123)
textView.text = name // त्रुटि: Type mismatch. Required: String, Found: String?
```
कंपाइलर शिकायत करता है कि name null हो सकता है। मैंने इंटरनेट पर पाया कि `!!` का उपयोग किया जा सकता है:
```kotlin
textView.text = name!!
```
लेकिन मैं समझ नहीं पा रहा हूँ: तब इस सारी null-सुरक्षा की क्या आवश्यकता है?