कोटलिन में, "!!" एक ऑपरेटर है जिसे डबल-बैंग ऑपरेटर के रूप में जाना जाता है। इस ऑपरेटर को "न-नल अभिकथन ऑपरेटर" के रूप में भी जाना जाता है। इस ऑपरेटर का उपयोग किसी भी मान को गैर-नल प्रकार मान में बदलने के लिए किया जाता है और यदि संबंधित मान न्यूल है तो यह अपवाद फेंकता है। निम्नलिखित उदाहरण में, हम देखेंगे कि इस डबल-बैंग ऑपरेटर का उपयोग कैसे करें।
उदाहरण 1
इस उदाहरण में, हम एक चर "name" . पर विचार करेंगे और एक प्रोग्रामर के रूप में, जब भी "name" . का मान होता है, हम एक NULL पॉइंटर एक्सेप्शन फेंकना चाहते हैं शून्य है। अब, निम्न कोड निष्पादित करें
फन मेन (तर्क:ऐरे <स्ट्रिंग>) {var नाम:स्ट्रिंग? नाम =शून्य प्रिंट्लन (नाम)}
आउटपुट
यह निम्नलिखित आउटपुट उत्पन्न करेगा -
<पूर्व>शून्ययह कोड वास्तव में हमारे आवश्यकता विवरण को हल नहीं कर रहा है। जब भी "name" . का मान होता है, हम एक NULL पॉइंटर अपवाद फेंकना चाहते हैं शून्य है। आइए अपने पिछले उदाहरण को डबल-बैंग ऑपरेटर (!!) की मदद से संशोधित करें।
उदाहरण 2
फन मेन (तर्क:ऐरे <स्ट्रिंग>) {var नाम:स्ट्रिंग? name =null // अधिभार अस्पष्टता अपवाद को हल करने के लिए कुछ भी उपयोग नहीं किया गया है println(name!! is कुछ भी नहीं है?)}
आउटपुट
यह रनटाइम पर एक NULL पॉइंटर एक्सेप्शन फेंक देगा -
थ्रेड में अपवाद "मुख्य" java.lang.NullPointerExceptionat MainKt.main(main.kt:6)