आप जैसे पाठक MUO का समर्थन करने में मदद करते हैं। जब आप हमारी साइट पर लिंक का उपयोग करके खरीदारी करते हैं, तो हम संबद्ध कमीशन अर्जित कर सकते हैं। और पढ़ें।

अपने कोड को फ़ॉर्मेट करना उसकी पठनीयता, निरंतरता और पुन: प्रयोज्यता को बढ़ाने का एक महत्वपूर्ण तरीका है। उचित रूप से स्वरूपित कोड को समझना, संशोधित करना और बनाए रखना आसान है।

गो की महान विशेषताओं में से एक इसकी अच्छी तरह से परिभाषित स्वरूपण प्रथा है। आप अपने कोड को स्वचालित रूप से प्रारूपित करने के लिए अंतर्निहित प्रारूप पैकेज और go fmt कमांड का उपयोग कर सकते हैं। इससे यह सुनिश्चित करने में मदद मिलेगी कि अन्य गो प्रोग्रामर इसे यथासंभव आसानी से पढ़ सकते हैं।

प्रारूप पैकेज और एफएमटी कमांड

प्रारूप पैकेज के लिए मानक स्वरूपण लागू करता है स्रोत कोड जाओ. पैकेज के साथ इंटरऑपरेट करता है जाओ प्रारूप गो कोड को फॉर्मेट करने में लचीलेपन के लिए कमांड लाइन टूल।

प्रारूप पैकेज गो पैकेज में एक सबमॉड्यूल है। यहां बताया गया है कि आप इसे कैसे आयात कर सकते हैं:

आयात"जाओ/प्रारूप"

निर्दिष्ट करके आप go fmt कमांड के दस्तावेज़ीकरण को ब्राउज़ कर सकते हैं मदद आदेश से पहले fmt आज्ञा:

instagram viewer
जाओ मदद एफएमटी

उस फ़ाइल को स्वरूपित करने के लिए fmt कमांड के बाद एक फ़ाइल नाम निर्दिष्ट करें। यह आपके कोड के व्हाइटस्पेस और इंडेंटेशन को गो मानकों के अनुरूप समायोजित करेगा।

fmt main.go जाओ

परदे के पीछे, go fmt gofmt कमांड के लिए एक उपनाम है, विशेष रूप से:

गोफमट -एल -डब्ल्यू

वे झंडे gofmt को आपके द्वारा प्रदान की जाने वाली प्रत्येक फ़ाइल में कोई भी परिवर्तन लिखने का कारण बनते हैं और उन फ़ाइलों के नामों को सूचीबद्ध करते हैं जिन्हें यह बदलता है।

आप जोड़ सकते हैं -एक्स fmt कमांड को फ़्लैग करें। -X ध्वज फ़ॉर्मेटर से मूल फ़ाइल में परिवर्तन लिखने में सहायता करता है।

fmt -x main.go पर जाएं

-एन फ़्लैग -x के समान कार्य करता है, लेकिन यह परिवर्तन नहीं करता है। इसके बजाय, यह उन आदेशों को प्रदर्शित करता है जो go fmt -n के बिना चलेंगे:

fmt -n main.go पर जाएं

फ़्लैग फ़ॉर्मैटर को परिवर्तन दिखाने के लिए कहता है, जिससे आप उन्हें लागू करने से पहले उनकी समीक्षा कर सकते हैं।

यहां एक सरल गो प्रोग्राम है जो पूर्णांक से शून्य से पांच तक लूप करता है और स्ट्रिंग "हैलो वर्ल्ड!" प्रिंट करता है।

// ऊपर दिए गए उदाहरण में दिखाए गए अनुसार main.go नामक फ़ाइल को स्वरूपित करना 

पैकेट मुख्य
आयात"एफएमटी"
समारोहमुख्य() {
वर एक्स int यहाँ=5
के लिए मैं: =0;मैं fmt. प्रिंटलन("हैलो वर्ल्ड!")
}
}

स्वरूपण जाओ स्रोत कोड

प्रारूप पैकेज में एक शामिल है स्रोत कार्यक्रमों से गो फ़ाइलों को स्वरूपित करने का कार्य। आपको फ़ाइल को पढ़ना होगा और सामग्री को स्रोत फ़ंक्शन के तर्क के रूप में पास करना होगा।

स्रोत फ़ंक्शन स्वरूपित फ़ाइल सामग्री लौटाएगा जिसे आप फ़ाइल में लिख सकते हैं या एक नया।

आप के साथ फ़ाइलें पढ़ सकते हैं रीडफाइल का कार्य ioutil पैकेट। रीडफाइल फ़ंक्शन फ़ाइल नाम लेता है और फ़ाइल सामग्री और हैंडलिंग के लिए त्रुटि देता है।

फ़ाइल सामग्री, त्रुटि: = ioutil. रीडफाइल("मेन.गो")

अगर गलती! = शून्य {
लकड़ी का लट्ठा। फैटलन("फ़ाइल पढ़ने में त्रुटि हुई थी", गलती)
}

फ़ाइल सामग्री को स्रोत फ़ंक्शन में पास करना स्वरूपित फ़ाइल सामग्री और हैंडलिंग के लिए एक त्रुटि देता है।

स्वरूपित, त्रुटि: = स्वरूप। स्रोत (फ़ाइल सामग्री)

अगर गलती! = शून्य {
लकड़ी का लट्ठा। फैटलन("स्रोत फ़ंक्शन के साथ एक स्वरूपण त्रुटि थी", गलती)
}

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

0644 फ़ाइल अनुमति मोड देता है:

  • फ़ाइल स्वामी पढ़ने और लिखने की अनुमति देता है।
  • स्वामी के रूप में एक ही समूह में अन्य उपयोगकर्ताओं के लिए अनुमतियां पढ़ें।
  • अन्य उपयोगकर्ताओं के लिए कोई अनुमति नहीं।
त्रुटि = ioutil. राइटफाइल("मेन.गो", स्वरूपित, 0644)

अगर गलती! = शून्य {
लकड़ी का लट्ठा। फैटलन("फ़ाइल लिखने में त्रुटि हुई थी", गलती)
}

वैकल्पिक रूप से, आप स्वरूपण के लिए स्रोत फ़ंक्शन में गो स्रोत कोड पास कर सकते हैं। आप टिक का उपयोग करके बाइट स्लाइस में कोड निर्दिष्ट कर सकते हैं (`):

पैकेट मुख्य

आयात (
"एफएमटी"
"जाओ/प्रारूप"
)

समारोहमुख्य() {
// सरल प्रोग्राम जो गणित के साथ त्रिभुज के क्षेत्रफल की गणना करता है
// समारोह
स्वरूपित, त्रुटि: = स्वरूप। स्रोत([]बाइट(`
पैकेट मुख्य
आयात(
"एफएमटी"
"गणित"
)
समारोहमुख्य(){
वरफ्लोट64=3
वर बी फ्लोट64=4
वर सी फ्लोट64=5
वर एस फ्लोट64=(ए+बी+सी)/2
वर क्षेत्र फ्लोट64= गणित। Sqrt (s*(s-a)*(s-b)*(s-c))
fmt. प्रिंटलन("त्रिभुज का क्षेत्रफल है:",क्षेत्र)
}
`))

अगर गलती! = शून्य {
लकड़ी का लट्ठा। फैटलन("स्रोत फ़ंक्शन के साथ एक स्वरूपण त्रुटि थी", गलती)
} अन्य {
fmt. प्रिंटलन(डोरी(स्वरूपित))
}
}

स्वरूपण पर, आपको बाइट स्लाइस को स्ट्रिंग में बदलने की आवश्यकता होगी डोरी समारोह। यहाँ स्वरूपित स्रोत कोड है।

स्वरूपण प्रक्रिया को अनुकूलित करना

आप प्रारूप पैकेज के साथ स्वरूपण प्रक्रिया को अनुकूलित कर सकते हैं कॉन्फ़िग संरचना। कॉन्फ़िग संरचना में फ़ील्ड्स होते हैं जहाँ आप इन्स्टेन्शियशन पर प्रारूप विकल्पों को निर्दिष्ट कर सकते हैं।

आयात"जाओ/प्रारूप"

कॉन्फिग: = और प्रारूप। कॉन्फ़िग{
// टैबविड्थ प्रति टैब रिक्त स्थान की संख्या निर्धारित करता है।
टैबविड्थ: 8,

// UseTabs इंगित करता है कि क्या फ़ॉर्मेटर को इसके बजाय टैब का उपयोग करना चाहिए
// रिक्त स्थान।
टैब का उपयोग करें: असत्य,

// TabIndent का उपयोग यह निर्धारित करने के लिए किया जाता है कि प्रारंभिक इंडेंटेशन होना चाहिए या नहीं
// टैब या रिक्त स्थान का उपयोग करके किया गया।
टैबइंडेंट: सत्य,

// NoFinalTab निर्दिष्ट करता है कि अंतिम टैब को हटाया जाना चाहिए या नहीं
// लाइनें स्वरूपित होने से पहले।
नो फाइनल टैब: सत्य,

// रिक्त स्थान निर्दिष्ट करता है कि संरेखण के लिए रिक्त स्थान का उपयोग किया जाना चाहिए या नहीं।
रिक्त स्थान: सत्य,

// NoTrimTrailingSpace निर्दिष्ट करता है कि क्या अनुगामी सफेद स्थान होना चाहिए
// स्वरूपित होने से पहले लाइनों से छंटनी की जानी चाहिए।
नोट्रिमट्रेलिंगस्पेस: असत्य,
}

आप अपनी आवश्यकताओं के आधार पर विकल्पों को सेट करके अपने फ़ॉर्मेटर के व्यवहार को अनुकूलित करने के लिए फ़ील्ड्स का उपयोग कर सकते हैं।

फिर आप अपने कॉन्फ़िगरेशन के आधार पर बाइट स्लाइस को फ़ॉर्मेट करने के लिए इस संरचना के स्रोत विधि का उपयोग कर सकते हैं।

समारोहमुख्य() {
फ़ाइल सामग्री, त्रुटि: = ioutil. रीडफाइल("मेन.गो")

// ध्यान दें कि यह `कॉन्फ़िगरेशन` प्रकार का एक स्रोत तरीका है, न कि
// `प्रारूप` पैकेज ही हालांकि कार्यक्षमता समान है, आप करेंगे
// यदि आपको फ़ॉर्मेटर को कॉन्फ़िगर करने की आवश्यकता है तो इसका पालन करने की आवश्यकता है
स्वरूपित, त्रुटि: = config. स्रोत (फ़ाइल सामग्री)

अगर गलती! = शून्य {
लकड़ी का लट्ठा। फैटलन("कॉन्फ़िगरेशन प्रकार के साथ एक स्वरूपण त्रुटि थी", गलती)
}

ioutil. राइटफाइल("मेन.गो", स्वरूपित, 0644)
}

कॉन्फिग को कॉल करना। स्रोत() फ़ंक्शन इस तरह की सामग्री को स्वरूपित करता है main.go कॉन्फ़िगरेशन विकल्पों का उपयोग करके फ़ाइल। यह स्वरूपित सामग्री को बाइट स्लाइस और एक त्रुटि के रूप में लौटाता है।

आप गो में स्ट्रिंग को फॉर्मेट और मैनिप्युलेट कर सकते हैं

प्रारूप पैकेज और fmt कमांड आपकी कोड स्वरूपण प्रक्रिया को स्वचालित करने में आपकी सहायता कर सकते हैं।

गो स्ट्रिंग स्वरूपण के लिए एक fmt पैकेज और स्ट्रिंग हेरफेर के लिए एक स्ट्रिंग पैकेज भी प्रदान करता है।

fmt पैकेज सी के प्रिंटफ और स्कैनफ कार्यों के अनुरूप कार्यों के साथ सरल स्वरूपित I/O लागू करता है। स्ट्रिंग्स फ़ंक्शन यूटीएफ -8 एन्कोडेड स्ट्रिंग्स में हेरफेर करने के लिए सरल कार्यों को लागू करता है।