नल सुरक्षा
Kotlin की नल सुरक्षा प्रणाली समझें: नल-योग्य प्रकार, सुरक्षित कॉल ऑपरेटर, Elvis ऑपरेटर और NullPointerExceptions को समाप्त करने का तरीका।
नल सुरक्षा, CoddyKit पर Android Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Android Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Android Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
अरबों डॉलर की भूल
Java में कोई भी variable null हो सकता है, जिससे runtime पर NullPointerException (NPE) हो सकता है — यह Android apps में होने वाले सबसे सामान्य crashes में से एक है।
null का आविष्कार करने वाले Tony Hoare ने इसे अपनी अरबों डॉलर की भूल कहा था।
Kotlin अपने null safety system से compile time पर NPEs को समाप्त करता है।
Nullable बनाम Non-Nullable
Kotlin में types डिफ़ॉल्ट रूप से non-nullable होते हैं। null की अनुमति देने के लिए type में ? जोड़ें:
String— कभी null नहीं, इसकी गारंटी हैString?— null हो सकता है
Compiler इसे लागू करता है — यह आपको non-nullable type को null assign नहीं करने देगा।
Nullable Types का उदाहरण
आपका app चलने से पहले compiler null से जुड़ी गलतियाँ पकड़ लेता है:
fun main() {
val name: String = "Alice" // never null
// name = null // COMPILE ERROR
var nickname: String? = "Al" // nullable
nickname = null // OK
println(name)
println(nickname) // null
}Safe Call Operator ?.
safe call operator ?. किसी method को केवल तब call करता है, जब object null न हो। यदि वह null हो, तो crash होने के बजाय null लौटाता है।
nickname?.length → length लौटाता है, या nickname के null होने पर null लौटाता है।
Safe Calls का प्रयोग
Nullable properties को सुरक्षित रूप से access करने के लिए ?. का उपयोग करें:
fun main() {
var text: String? = "Hello"
println(text?.length) // 5
println(text?.uppercase()) // HELLO
text = null
println(text?.length) // null (no crash!)
println(text?.uppercase()) // null
}Elvis Operator ?:
Elvis operator ?: किसी expression के null होने पर डिफ़ॉल्ट मान देता है:
val len = text?.length ?: 0
इसे ऐसे पढ़ें: "text की length, या text null होने पर 0"।
इसका नाम Elvis emoji 🕺 के नाम पर रखा गया है, जिसके बाल ?: जैसे दिखते हैं।
Elvis Operator का उदाहरण
?: की सहायता से सुरक्षित डिफ़ॉल्ट मान दें:
fun main() {
var name: String? = "Bob"
println(name?.length ?: 0) // 3
name = null
println(name?.length ?: 0) // 0
val display = name ?: "Anonymous"
println(display) // Anonymous
}if से Null Checks
if (x != null) block के अंदर Kotlin nullable type को स्वचालित रूप से non-nullable में smart-cast कर देता है — block के अंदर ?. उपयोग करने की आवश्यकता नहीं होती।
Smart Cast का उदाहरण
Null check के बाद Kotlin type को अधिक विशिष्ट बना देता है:
fun printLength(text: String?) {
if (text != null) {
// 'text' is now String (non-nullable) here
println("Length: ${text.length}") // no ?. needed
} else {
println("text is null")
}
}
fun main() {
printLength("Kotlin") // Length: 6
printLength(null) // text is null
}त्वरित जाँच
null?.length ?: -1 का परिणाम क्या होगा?
पुनरावलोकन: Null Safety
Kotlin का null safety system NPEs को समाप्त करता है:
- Types डिफ़ॉल्ट रूप से non-nullable होते हैं; null की अनुमति देने के लिए
?जोड़ें ?.safe call — crash होने के बजाय null लौटाता है?:Elvis operator — null होने पर डिफ़ॉल्ट मान देता हैif (x != null)blocks के अंदर smart casts
अगला विषय: classes और objects के साथ code को व्यवस्थित करना।
एआई शिक्षक के साथ Kotlin सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 36
- पाठ
- 152
अक्सर पूछे जाने वाले प्रश्न
क्या “नल सुरक्षा” पाठ निःशुल्क है?
हाँ — Android Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “नल सुरक्षा” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Android Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“नल सुरक्षा” में मैं क्या सीखूँगा?
Kotlin की नल सुरक्षा प्रणाली समझें: नल-योग्य प्रकार, सुरक्षित कॉल ऑपरेटर, Elvis ऑपरेटर और NullPointerExceptions को समाप्त करने का तरीका। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Android Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Android Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Android Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“नल सुरक्षा” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Android Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Android Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।