Kotlin में विस्मयादिबोधक चिह्न का क्या अर्थ है? (Single exclamation mark)
नमस्ते, साथियों! मैंने हाल ही में Java के बाद Kotlin सीखना शुरू किया है, और एक चीज़ मुझे भ्रमित कर रही है। कुछ स्थानों पर कोड में मैं डेटा प्रकार के बाद एकल विस्मयादिबोधक चिह्न देखता हूँ, जैसे `String!` या `List!`। मैं समझता हूँ कि Kotlin nullable (`String?`) और non-null (`String`) प्रकारों के बीच सख्ती से अंतर करता है, लेकिन `String!` क्या है? आधिकारिक दस्तावेज़ में मुझे यह नहीं मिला।
यहाँ मेरे प्रोजेक्ट का एक उदाहरण है जहाँ मैं Java लाइब्रेरी का उपयोग कर रहा हूँ:
```kotlin
// Java कोड
public class JavaClass {
public static String getString() {
return null; // null लौटा सकता है
}
}
// Kotlin कोड
fun main() {
val result: String! = JavaClass.getString() // IDE String! दिखाता है
println(result.length) // यहाँ मुझे संकलन त्रुटि की उम्मीद है, लेकिन कोई त्रुटि नहीं है
}
```
IDE (IntelliJ IDEA) वेरिएबल `result` के लिए प्रकार `String!` दिखाता है। मैंने `result` को सामान्य स्ट्रिंग की तरह उपयोग करने का प्रयास किया, और संकलक कोई आपत्ति नहीं करता, लेकिन रनटाइम पर मुझे NullPointerException मिलता है। ऐसा क्यों होता है? क्या यह कोई