"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > गो में पैकेज और मॉड्यूल को समझना!

गो में पैकेज और मॉड्यूल को समझना!

2024-11-06 को प्रकाशित
ब्राउज़ करें:255

Entendendo pacotes e modulos em Go!


गो में पैकेज और मॉड्यूल को सुलझाना: जो मुझे पहले समझ नहीं आया

जब मैंने गो में प्रोग्रामिंग शुरू की, तो सी में मेरी पहले से ही अच्छी पकड़ थी, जो मेरी पहली प्रोग्रामिंग भाषा थी। इससे मुझे बहुत मदद मिली, क्योंकि गो में सी के साथ बहुत कुछ समानता है - सादगी से लेकर प्रदर्शन तक। कम कीवर्ड, कम जटिलता, और सीखने की प्रक्रिया आसान। लेकिन फिर वह हिस्सा आया जिसने मुझे थोड़ा खो दिया: पैकेज, मॉड्यूल और गो मॉड की पसंद

मुझे याद है कि मैंने सोचा था: "मैं बस एक सरल प्रोग्राम संकलित करना चाहता हूं, मुझे पैकेजों के बारे में चिंता करने की आवश्यकता क्यों है?" मॉड्यूल के बारे में क्या? ऐसा लगता है जैसे वे कहीं से भी आते हैं और हर कोई कहता है कि वे निर्भरता के प्रबंधन के लिए आवश्यक हैं। लेकिन चिंता न करें, मैं उन लोगों के लिए सब कुछ सरल तरीके से समझाऊंगा जो पहले से ही प्रोग्राम कर चुके हैं, लेकिन अभी तक गो में इन चीजों को नहीं समझ पाए हैं।

गो में पैकेज: कोड को विभाजित और व्यवस्थित करना

सबसे पहले, गो में पैकेज की अवधारणा काफी हद तक वैसी ही है जैसी आपने सी में देखी है। पैकेज को अपने कोड को व्यवस्थित करने और पुन: उपयोग करने के तरीके के रूप में सोचें। सी में, जब आप फ़ंक्शंस को .h और .c फ़ाइलों में अलग करते हैं, तो गो में आप कुछ ऐसा ही करते हैं, लेकिन पैकेज के साथ। प्रत्येक पैकेज कार्यक्षमता को समूहित करता है और आपको कोड के अन्य भागों में जो चाहिए उसे आयात करने की अनुमति देता है।

उदाहरण के लिए, सभी फ़ंक्शंस को एक फ़ाइल में डालने के बजाय, आप उन्हें पैकेजों में विभाजित कर सकते हैं:

package main

import "fmt"

func main() {
    fmt.Println("Hello, Go!")
}

यहाँ, fmt एक मानक लाइब्रेरी पैकेज है जो I/O फ़ॉर्मेटिंग का ध्यान रखता है। आयात करते समय, आप इसके कार्यों तक पहुँचते हैं। और आप उसी तरह से अपने स्वयं के पैकेज बना सकते हैं, जिससे कोड रखरखाव और संगठन आसान हो जाता है।

और गो मॉड के बारे में क्या?

अब, मॉड्यूल अलग हो गए। यही हैं जहां बातें दिलचस्प हो जाती हैं। यदि पैकेज सी में लाइब्रेरी की तरह हैं, तो मॉड्यूल एक "सुपर पैकेज" की तरह हैं जो यह सब प्रबंधित करता है। वे आपके प्रोजेक्ट को व्यवस्थित और सुरक्षित तरीके से बिना किसी परेशानी के तृतीय-पक्ष पैकेज डाउनलोड करने और उपयोग करने की अनुमति देते हैं।

go mod वह कमांड है जो आपको इन मॉड्यूल का उपयोग करने के लिए अपने प्रोजेक्ट को कॉन्फ़िगर करने में मदद करता है। जब आप गो मॉड इनिट के साथ एक नया प्रोजेक्ट शुरू करते हैं, तो आप अनिवार्य रूप से एक कॉन्फ़िगरेशन बना रहे हैं जिसका उपयोग गो निर्भरताओं को प्रबंधित करने के लिए करेगा। इसका मतलब यह है कि यह आपके प्रोजेक्ट के लिए आवश्यक पैकेजों को स्वचालित रूप से डाउनलोड कर देगा (उन्हें हाथ से डाउनलोड किए बिना, जैसा कि आप सी में करेंगे)।

उदाहरण के लिए:

go mod init meu-projeto
go get github.com/pacote/fantastico

इन आदेशों के साथ, गो, go.mod फ़ाइल बनाता है, जो आपके प्रोजेक्ट की निर्भरता के बारे में जानकारी संग्रहीत करता है। फिर, जब आप गो बिल्ड चलाते हैं, तो गो आपके लिए चिंता किए बिना सीधे इंटरनेट से वह सब कुछ डाउनलोड कर लेता है, जिसे संकलित करने की आवश्यकता होती है।

संक्षेप में...

जब आप अपने कोड को पैकेजों में व्यवस्थित करते हैं और निर्भरता को प्रबंधित करने के लिए मॉड्यूल का उपयोग करते हैं, तो गो अधिक कुशल हो जाता है। यह पहली बार में भ्रमित करने वाला लग सकता है (मुझे भी यह तुरंत समझ नहीं आया), लेकिन एक बार जब आप इसे समझ जाएंगे, तो आपको एहसास होगा कि पैकेज और मॉड्यूल आपके कोड को अधिक स्केलेबल और साफ-सुथरा बनाते हैं। सब कुछ बेहतर ढंग से प्रवाहित होता है, विशेषकर बड़ी परियोजनाओं में।


विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/nivicius/entendendo-pacotes-e-modulos-em-go-2k3?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.com से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3