Kotlin मानक पुस्तकालय क्या है?
\nKotlin मानक पुस्तकालय (kotlin-stdlib) मॉड्यूल का एक सेट है जो भाषा का हिस्सा है और डेवलपर को दैनिक कार्यों के लिए तैयार समाधान प्रदान करता है। Java के विपरीत, जहां कई चीजें मैन्युअल रूप से लिखनी पड़ती हैं या तृतीय-पक्ष पुस्तकालयों को जोड़ना पड़ता है, Kotlin संग्रह, स्ट्रिंग्स, थ्रेड्स, कोरूटीन और सीरियलाइज़ेशन के साथ काम करने के लिए शक्तिशाली अंतर्निहित उपकरण प्रदान करता है। पुस्तकालय Java के साथ पूरी तरह से संगत है, लेकिन साथ ही इसकी क्षमताओं का विस्तार करता है, जिससे कोड अधिक संक्षिप्त और सुरक्षित हो जाता है।
\n\nमानक पुस्तकालय के मुख्य मॉड्यूल
\n- \n
- kotlin-stdlib — पुस्तकालय का मूल: संग्रह, ranges, sequences, मानक फ़ंक्शन (let, apply, also, run)। \n
- kotlinx-coroutines — कोरूटीन के माध्यम से अतुल्यकालिक प्रोग्रामिंग के लिए समर्थन। \n
- kotlinx-serialization — JSON, Protobuf और अन्य प्रारूपों में सीरियलाइज़ेशन/डीसीरियलाइज़ेशन। \n
- kotlin-test — यूनिट परीक्षण के लिए उपकरण। \n
- kotlin-reflect — रनटाइम पर रिफ्लेक्शन और प्रकारों के साथ कार्य। \n
संग्रह और अनुक्रम
\nKotlin की सबसे मजबूत विशेषताओं में से एक संग्रह के साथ काम करना है। पुस्तकालय परिवर्तनीय (mutable) और अपरिवर्तनीय (immutable) दोनों संग्रह प्रदान करता है। सभी बुनियादी संचालन (फ़िल्टरिंग, रूपांतरण, समूहीकरण) एक्सटेंशन फ़ंक्शन के रूप में कार्यान्वित किए जाते हैं।
\n\nउदाहरण: सूचियों के साथ कार्य
\nval numbers = listOf(1, 2, 3, 4, 5, 6)\nval evenSquares = numbers\n .filter { it % 2 == 0 }\n .map { it * it }\n .sortedDescending()\nprintln(evenSquares) // [36, 16, 4]\nइस उदाहरण में, हम कॉल की एक श्रृंखला का उपयोग करते हैं: फ़िल्टरिंग, रूपांतरण और सॉर्टिंग। सभी संचालन टर्मिनल ऑपरेशन (इस मामले में, प्रिंटिंग) तक आलसी रूप से निष्पादित होते हैं। बड़े डेटा सेट के लिए Sequence का उपयोग करने की अनुशंसा की जाती है।
आलसी गणना के लिए Sequences
\nval largeList = (1..1_000_000).toList()\nval result = largeList.asSequence()\n .filter { it % 2 == 0 }\n .map { it * 2 }\n .take(10)\n .toList()\nprintln(result) // [4, 8, 12, 20, 24, 28, 32, 36, 40]\nसामान्य संग्रह के विपरीत, Sequence मध्यवर्ती सूचियाँ नहीं बनाता है, जो बड़ी मात्रा में डेटा के साथ काम करते समय मेमोरी बचाता है।
कोरूटीन: बिना दर्द के अतुल्यकालिकता
\nमॉड्यूल kotlinx-coroutines Kotlin में अतुल्यकालिक कोड के साथ काम करने का मानक तरीका है। यह कॉलबैक और RxJava को बदलता है, एक सरल अनुक्रमिक सिंटैक्स प्रदान करता है।
\n\nकोरूटीन का एक सरल उदाहरण
\nimport kotlinx.coroutines.*\n\nfun main() = runBlocking {\n val result = async {\n delay(1000L)\n "हो गया!"\n }\n println("प्रतीक्षा कर रहा है...")\n println(result.await()) // 1 सेकंड के बाद "हो गया!"\n}\nमुख्य अवधारणाएँ:
\n- \n
runBlocking— कोरूटीन के पूरा होने तक वर्तमान थ्रेड को ब्लॉक करता है (main में उपयोग किया जाता है)। \n async— एक कोरूटीन शुरू करता है औरDeferred(Future का एनालॉग) लौटाता है। \n await— परिणाम प्राप्त होने तक कोरूटीन को रोकता है। \n
संरचित समवर्तीता
\nfun main() = runBlocking {\n launch {\n repeat(3) { i ->\n delay(500L)\n println("कार्य $i पूर्ण हुआ")\n }\n }\n println("मुख्य कोरूटीन काम करना जारी रखता है")\n}\nसंरचित समवर्तीता के कारण, मूल कोरूटीन के पूरा होने पर सभी चाइल्ड कोरूटीन स्वचालित रूप से पूरे हो जाते हैं। यह मेमोरी लीक को रोकता है और कोड को पूर्वानुमानित बनाता है।
\n\nडेटा सीरियलाइज़ेशन (kotlinx.serialization)
\nमॉड्यूल kotlinx-serialization रिफ्लेक्शन का उपयोग किए बिना Kotlin ऑब्जेक्ट्स को JSON, XML, Protobuf और अन्य प्रारूपों में बदलने की अनुमति देता है। सीरियलाइज़ेशन संकलन चरण में काम करता है, जो इसे तेज़ और बेहतर बनाता है।
पुस्तकालय में भी
Rust के लिए Elasticsearch क्लाइंट: elasticsearch-rs लाइब्रेरी की पूरी गाइड
स्विफ्ट (iOS/macOS) में कैशिंग: Redis, NSCache और Core Data
Zod — TypeScript में डेटा सत्यापन के लिए एक शक्तिशाली लाइब्रेरी