कोटलिन साक्षात्कार कैसे पास करें: A से Z तक शीर्ष प्रश्न

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

कोटलिन साक्षात्कार कैसे पास करें: A से Z तक शीर्ष प्रश्न

\n\n

कोटलिन साक्षात्कार केवल सिंटैक्स की जांच नहीं है। नियोक्ता यह देखना चाहते हैं कि आप भाषा के दर्शन को समझते हैं: शून्य सुरक्षा, कार्यात्मक शैली, मुहावरे और संकलन की विशेषताएं। इस लेख में, हमने सबसे सामान्य प्रश्नों का विश्लेषण किया है - बुनियादी से लेकर उन्नत तक। 100% इंटरव्यू की तैयारी करें।

\n\n

1. बुनियादी प्रश्न: सिंटैक्स और null safety

\n\n

साक्षात्कार आमतौर पर मूल बातों से शुरू होता है। यहाँ वह है जो आपको निश्चित रूप से जानना चाहिए।

\n\n

कोटलिन में डेटा प्रकार क्या हैं और वे Java से कैसे भिन्न हैं?

\n

कोटलिन एक स्थिर रूप से टाइप की गई भाषा है। सभी प्रकार ऑब्जेक्ट हैं, कोई प्रिमिटिव नहीं हैं (लेकिन कंपाइलर ऑप्टिमाइज़ कर सकता है)। मुख्य प्रकार: Int, Double, Boolean, String, Array। Java के विपरीत, कोटलिन में ऑब्जेक्ट बनाने के लिए new नहीं है, और nullable प्रकारों को स्पष्ट रूप से ? चिह्न से चिह्नित किया जाता है।

\n\n

null safety क्या है और कोटलिन इसे कैसे लागू करता है?

\n

Null safety NullPointerException के खिलाफ एक अंतर्निहित सुरक्षा है। प्रकार nullable (String?) और non-null (String) में विभाजित हैं। सुरक्षित पहुँच के लिए ऑपरेटरों का उपयोग करें:

\n
val name: String? = null\nprintln(name?.length)       // सुरक्षित कॉल -> null\nprintln(name?.length ?: 0)  // एल्विस ऑपरेटर -> 0\nprintln(name!!.length)      // जबरदस्ती -> NPE, यदि null
\n\n

val, var से कैसे भिन्न है?

\n
    \n
  • val — अपरिवर्तनीय संदर्भ (read-only)। Java में final के समान।
  • \n
  • var — परिवर्तनीय संदर्भ (mutable)।
  • \n
\n

महत्वपूर्ण: val ऑब्जेक्ट की अपरिवर्तनीयता की गारंटी नहीं देता, केवल संदर्भ की।

\n\n

2. उन्नत संरचनाएँ: क्लासेस, फंक्शन और sealed

\n\n

यहाँ वे संक्षिप्त और सुरक्षित कोड लिखने की क्षमता की जाँच करते हैं।

\n\n

data class क्या है और यह कौन से मेथड उत्पन्न करता है?

\n

data class — डेटा संग्रहीत करने के लिए एक क्लास। कंपाइलर स्वचालित रूप से उत्पन्न करता है: equals(), hashCode(), toString(), copy(), और componentN()।

\n
data class User(val id: Int, val name: String)\nval user = User(1, "Alice")\nval copy = user.copy(name = "Bob")\nprintln(user) // User(id=1, name=Alice)
\n\n

sealed class क्या है और इसका उपयोग कब करें?

\n

sealed class — एक सीमित वर्ग पदानुक्रम। सभी उपवर्गों को उसी फ़ाइल में घोषित किया जाना चाहिए। स्थितियों का प्रतिनिधित्व करने के लिए आदर्श (उदाहरण के लिए, लोडिंग परिणाम)।

\n
sealed class Result {\n    data class Success(val data: String) : Result()\n    data class Error(val message: String) : Result()\n    object Loading : Result()\n}\n\nfun handle(result: Result) = when (result) {\n    is Result.Success -> println(result.data)\n    is Result.Error -> println(result.message)\n    Result.Loading -> println("Loading...")\n}
\n

लाभ: when को संपूर्ण होना चाहिए - कंपाइलर सभी विकल्पों की जाँच करेगा।

\n\n

extension functions क्या हैं और वे कैसे काम करते हैं?

\n

Extension functions आपको बिना इनहेरिटेंस के किसी मौजूदा क्लास में एक नया मेथड जोड़ने की अनुमति देते हैं। वास्तव में, ये स्थैतिक फंक्शन हैं जो क्लास के इंस्टेंस को पहले तर्क के रूप में लेते हैं।

\n
fun String.isEmail(): Boolean = this.contains("@")\nprintln("test@mail.ru".isEmail()) // true
\n\n

3. कार्यात्मक प्रोग्रामिंग: लैम्ब्डा, कलेक्शन, स्कोप फंक्शन

\n\n

कोटलिन सक्रिय रूप से कार्यात्मक दृष्टिकोण का उपयोग करता है। कलेक्शन और स्कोप-फंक्शन के साथ काम करने के बारे में प्रश्नों के लिए तैयार रहें।

\n\n

आप कौन से स्कोप-फंक्शन जानते हैं? वे कैसे भिन्न हैं?

\n

मुख्य: let, run, with, apply, also। मुख्य अंतर संदर्भ (this या it) और वापसी मान है।

\n\n

ब्लॉग

पुस्तक अनुशंसाएँ

फंक्शनसंदर्भ