वाईएएमएल का उपयोग करके, आप गो प्रोग्राम लिख सकते हैं जो डेटा प्रारूप का उपयोग करके दूसरों के साथ इंटरऑपरेट करते हैं। यह मानव-पठनीय है, इसके साथ काम करना इतना आसान है।

YAML एक लोकप्रिय मानव-पठनीय डेटा क्रमांकन प्रारूप है। डेटा भाषा कॉन्फ़िगरेशन फ़ाइलों, डेटा विनिमय और संरचित डेटा संग्रहण के लिए उपयुक्त है।

Gqlgen और Docker-compose जैसे बिल्ड टूल सहित कई गो-आधारित प्रोजेक्ट कॉन्फ़िगरेशन के लिए YAML फ़ाइलों का उपयोग करते हैं। गो डेवलपर के रूप में, आप YAML डेटा को पार्स और हेरफेर करने के लिए yaml पैकेज जैसे टूल का उपयोग कर सकते हैं।

एक YAML फ़ाइल को समझना

YAML (YAML Ain't Markup Language) फाइलों में की-वैल्यू पेयर, लिस्ट और नेस्टेड स्ट्रक्चर होते हैं। YAML सिंटैक्स को देखने में आकर्षक और पढ़ने में आसान बनाने के लिए डिज़ाइन किया गया है। यह इसे कुबेरनेट्स और अन्य कॉन्फ़िगरेशन फ़ाइलों के लिए एक लोकप्रिय विकल्प बनाता है YAML का उपयोग करके ऑर्केस्ट्रेशन टूल.

जैसे अन्य डेटा स्वरूपों के विपरीत एक्सएमएल और जेएसओएन, YAML पदानुक्रम का प्रतिनिधित्व करने के लिए इंडेंटेशन पर निर्भर करता है।

यहां बताया गया है कि आप YAML के साथ बुनियादी फ़ील्ड्स को कैसे परिभाषित कर सकते हैं:

instagram viewer
नाम:जॉनहरिणी
आयु:30
ईमेल:[email protected]

एक कोलन कुंजी को उसके मान से अलग करता है, जो कोई भी मान्य YAML डेटा प्रकार हो सकता है जिसमें स्ट्रिंग्स, संख्याएं, बूलियन्स या नेस्टेड संरचनाएं शामिल हैं।

सूचियाँ आपको मूल्यों के संग्रह का प्रतिनिधित्व करने की अनुमति देती हैं। YAML में एक सूची को परिभाषित करने के लिए, प्रत्येक आइटम से पहले एक रिक्त स्थान के बाद एक हाइफ़न का उपयोग करें:

फल:
-सेब
-केला
-नारंगी

यहाँ, फल कुंजी है, और हाइफेनेटेड रेखाएं फलों की सूची को परिभाषित करती हैं।

YAML नेस्टेड संरचनाओं का भी समर्थन करता है, जिससे आप जटिल डेटा पदानुक्रमों का प्रतिनिधित्व कर सकते हैं:

व्यक्ति:
नाम:जॉनहरिणी
आयु:30
पता:
गली:123मुख्यअनुसूचित जनजाति
शहर:एनीटाउन
देश:अमेरीका

व्यक्ति कुंजी में नेस्टेड संरचना बनाने के लिए कुंजी-मूल्य जोड़े का एक और सेट होता है। पता key के पास की-वैल्यू पेयर का अपना सेट है।

गो में वाईएएमएल के साथ काम करना

गो वाईएएमएल फाइलों के लिए अंतर्निहित कार्यक्षमता प्रदान नहीं करता है, लेकिन तीसरे पक्ष के पैकेज हैं जो करते हैं।

यमल पैकेट YAML फ़ाइलों के साथ काम करने के लिए एक लोकप्रिय पैकेज है। यह प्रदान करता है:

  • पार्सिंग और क्रमांकन सुविधाएँ।
  • YAML टैग के लिए समर्थन।
  • व्यापक YAML विनिर्देश अनुपालन।
  • मार्शलिंग और अनमरशालिंग पर सूक्ष्म नियंत्रण।
  • त्रुटि प्रबंधन.
  • एकाधिक YAML संस्करणों के साथ संगतता।

अपना टर्मिनल खोलें और अपने प्रोजेक्ट के लिए YAML पैकेज स्थापित करने के लिए यह कमांड चलाएँ:

# YAML पैकेज का संस्करण 3 स्थापित करें
gopkg.in/yaml.v3 पर जाएं

पैकेज स्थापित करने के बाद, आप इसका उपयोग कर सकते हैं आयात आपकी गो फाइलों में पैकेज आयात करने के लिए बयान।

आयात"gopkg.in/yaml.v3"

आप जिस YAML विनिर्देशन का उपयोग करना चाहते हैं, उसके आधार पर आप कई YAML संस्करण चुन सकते हैं।

डेटा संरचनाओं पर जाने के लिए YAML को पढ़ना और पार्स करना

एक आवश्यक कार्य जिसे आप पूरा करना चाहते हैं वह YAML को गो डेटा संरचनाओं में पार्स करना है। यमल पैकेज ऐसा करने के लिए एक सरल, सुविधाजनक एपीआई प्रदान करता है।

इस वाईएएमएल डेटा पर विचार करें:

# आउटपुट.यामल

व्यक्ति:
नाम:जॉनहरिणी
आयु:30
ईमेल:[email protected]

आप YAML डेटा को गो डेटा संरचना में पार्स करने के लिए मेल खाने वाले फ़ील्ड नामों के साथ एक संबंधित संरचना को परिभाषित कर सकते हैं यमल पैकेट।

// व्यक्ति संरचना YAML में व्यक्ति कुंजी का प्रतिनिधित्व करती है।
प्रकार व्यक्ति struct {
नाम डोरी`यमल: "नाम"`
आयु int यहाँ`यमल: "उम्र"`
ईमेल डोरी`यमल: "ईमेल"`
}

यमल स्ट्रक्चर टैग पार्सिंग ऑपरेशन के दौरान YAML कुंजियों को स्ट्रक्चर फील्ड में मैप करने में मदद करते हैं।

यहां बताया गया है कि आप YAML डेटा को गो डेटा संरचना में कैसे पार्स कर सकते हैं:

आयात (
"एफएमटी"
"gopkg.in/yaml.v3"
"ओएस"
)

समारोहमुख्य() {
// आउटपुट.यामल फ़ाइल पढ़ें
डेटा, त्रुटि: = os. रीडफाइल("आउटपुट.यामल")

अगर गलती! = शून्य {
घबड़ाहट(गलत)
}

// एक व्यक्ति संरचना बनाएं और उस संरचना में डेटा को डीरिएलाइज़ करें
वर व्यक्ति व्यक्ति

अगर त्रुटि: = yaml. अनमार्शल (डेटा, और व्यक्ति); गलती! = शून्य {
घबड़ाहट(गलत)
}

// फ़ील्ड को कंसोल पर प्रिंट करें
fmt. प्रिंटफ("नाम: %s\n", व्यक्ति। नाम)
fmt. प्रिंटफ("उम्र: %d\n", व्यक्ति। आयु)
fmt. प्रिंटफ("ईमेल: %s\n", व्यक्ति। ईमेल)
}

मुख्य समारोह पढ़ता है आउटपुट.यामल फ़ाइल के साथ ioutil पैकेज रीडफाइल समारोह। यह तब का एक उदाहरण बनाता है व्यक्ति संरचना और डेटा को संरचना में पार्स करता है अनमार्शल की विधि यमल पैकेट। मुख्य फ़ंक्शन स्ट्रक्चर इंस्टेंस से फ़ील्ड प्रिंट करता है; यहाँ परिणाम है:

एक YAML फ़ाइल में डेटा सम्मिलित करना

आप YAML फ़ाइलों में डेटा सम्मिलित करने के लिए गो डेटा संरचनाओं का उपयोग कर सकते हैं। यहां बताया गया है कि आप YAML फ़ाइल में डेटा कैसे सम्मिलित कर सकते हैं व्यक्ति संरचना:

समारोहमुख्य() {
// सैंपल डेटा के साथ पर्सन स्ट्रक्चर का एक उदाहरण बनाएं
व्यक्ति: = व्यक्ति {
नाम: "जॉन डो",
आयु: 30,
ईमेल: "जॉन.डोए@example.com",
}

// व्यक्ति संरचना को YAML प्रारूप में क्रमबद्ध करें
डेटा, त्रुटि: = yaml. मार्शल (और व्यक्ति)

अगर गलती! = शून्य {
घबड़ाहट(गलत)
}

// क्रमबद्ध YAML डेटा को "output.yaml" नामक फ़ाइल में लिखें
त्रुटि = ओएस। राइटफाइल("आउटपुट.यामल", आंकड़े, 0644)

अगर गलती! = शून्य {
घबड़ाहट(गलत)
}

fmt. प्रिंटलन("डेटा Output.yaml को लिखा गया है")
}

व्यक्ति चर का एक उदाहरण है व्यक्ति संरचना प्रकार। उपयोग मार्शल की विधि यमल संरचना को YAML में बदलने के लिए पैकेज। यह संरचना का उदाहरण लेता है और YAML प्रतिनिधित्व और एक त्रुटि देता है।

आप उपयोग कर सकते हैं राइटफाइल का कार्य ओएस आपकी फ़ाइल में YAML डेटा लिखने के लिए पैकेज (इस स्थिति में, आउटपुट.यामल).

एक सफल YAML डेटा सीरियलाइज़ेशन और राइट ऑपरेशन के बाद, मुख्य समारोह कंसोल के लिए एक संदेश प्रिंट करता है।

आप YAML को मानचित्रों में मार्शल और अनमार्शल कर सकते हैं जैसा कि आप स्ट्रक्चर्स के साथ करते हैं।

यहां मानचित्रों के साथ YAML डेटा को मार्शलिंग और अनमरशालिंग करने का एक उदाहरण दिया गया है:

पैकेट मुख्य

आयात (
"एफएमटी"
"gopkg.in/yaml.v3"
)

समारोहमुख्य() {
// मार्शलिंग के लिए डेटा
डेटा := नक्शा[डोरी]इंटरफेस{}{
"नाम": "जॉन डो",
"आयु": 30,
"ईमेल": "[email protected]",
}

// डेटा को YAML में मार्शल करना
yamlData, त्रुटि: = yaml. मार्शल (डेटा)

अगर गलती! = शून्य {
fmt. प्रिंटलन("मार्शलिंग के दौरान त्रुटि:", गलती)
वापस करना
}

fmt. प्रिंटलन("मार्शलेड YAML डेटा:")
fmt. प्रिंटलन(डोरी(यमलडाटा))

// YAML डेटा को मानचित्र में अनमर्श करना
वर unmarshalledData नक्शा[डोरी]इंटरफेस{}
त्रुटि = yaml. अनमार्शल (yamlData, &unmarshalledData)

अगर गलती! = शून्य {
fmt. प्रिंटलन("अनमर्शलिंग के दौरान त्रुटि:", गलती)
वापस करना
}

fmt. प्रिंटलन("\nअनमार्शल्ड डेटा:")
fmt. Println (अनमार्शल्डडेटा)
}

प्रक्रिया के लिए समान है संरचना प्रकार, सिवाय इसके कि आप डेटा प्रस्तुतिकरण के लिए मानचित्रों का उपयोग कर रहे हैं। अनमार्शल और मार्शल विधियां दोनों डेटा प्रकारों के लिए काम करती हैं।

डॉकर कम्पोज़ कॉन्फ़िगरेशन के लिए YAML फ़ाइलों का उपयोग करता है

गो में YAML फ़ाइलों के साथ काम करना कॉन्फ़िगरेशन डेटा के प्रबंधन के लिए एक शक्तिशाली और लचीला दृष्टिकोण प्रदान करता है।

YAML फ़ाइलों के लिए एक प्रमुख उपयोग मामला Docker Compose है, जहाँ YAML फ़ाइल बहु-कंटेनर Docker अनुप्रयोगों को परिभाषित करने और प्रबंधित करने के लिए कॉन्फ़िगरेशन के रूप में कार्य करती है।

डॉकर कंपोज कंटेनर ऑर्केस्ट्रेशन को आसान बनाने के लिए सेवाओं, नेटवर्क, वॉल्यूम और कंटेनरीकृत अनुप्रयोगों के अन्य घटकों को परिभाषित करने के लिए वाईएएमएल की सादगी और पठनीयता का लाभ उठाता है।