Go (Golang) मानक पुस्तकालय: पूर्ण अवलोकन

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

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

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

Go (Golang) मानक पुस्तकालय: पूर्ण अवलोकन

\n\n

Google में विकसित Go (Golang) भाषा अपनी संक्षिप्तता, उच्च प्रदर्शन और अंतर्निहित समवर्तीता समर्थन के लिए प्रसिद्ध है। हालाँकि, इसकी मुख्य "सुपरपावर" में से एक शक्तिशाली और सुविचारित मानक पुस्तकालय है। कई अन्य भाषाओं के विपरीत, जहाँ बुनियादी कार्यों को हल करने के लिए तृतीय-पक्ष निर्भरताओं को जोड़ना आवश्यक है, Go "बॉक्स से बाहर" सब कुछ प्रदान करता है। इस लेख में, हम Go मानक पुस्तकालय के प्रमुख पैकेजों का पूर्ण अवलोकन करेंगे जो प्रत्येक डेवलपर के लिए उपयोगी होंगे।

\n\n

1. इनपुट-आउटपुट और फ़ाइलों के साथ कार्य: पैकेज io, os, bufio

\n\n

पैकेज io सभी इनपुट-आउटपुट संचालन की नींव है। इसके इंटरफ़ेस io.Reader और io.Writer Go में सबसे महत्वपूर्ण अमूर्तताओं में से एक हैं। वास्तव में, डेटा का कोई भी स्रोत (फ़ाइल, नेटवर्क कनेक्शन, स्ट्रिंग) को Reader के रूप में दर्शाया जा सकता है, और कोई भी गंतव्य Writer के रूप में।

\n\n

पैकेज os ऑपरेटिंग सिस्टम के साथ बातचीत के लिए फ़ंक्शन प्रदान करता है: फ़ाइलें खोलना/बनाना, निर्देशिकाएँ पढ़ना, पर्यावरण चर के साथ कार्य करना।

\n\n

पैकेज bufio बफरिंग जोड़ता है, जो बड़ी मात्रा में डेटा पढ़ने और लिखने में काफी तेजी लाता है।

\n\n
package main\n\nimport (\n    "bufio"\n    "fmt"\n    "os"\n)\n\nfunc main() {\n    // पढ़ने के लिए फ़ाइल खोलें\n    file, err := os.Open("example.txt")\n    if err != nil {\n        panic(err)\n    }\n    defer file.Close()\n\n    // बफ़र किया गया स्कैनर बनाएँ\n    scanner := bufio.NewScanner(file)\n    for scanner.Scan() {\n        fmt.Println(scanner.Text())\n    }\n\n    if err := scanner.Err(); err != nil {\n        fmt.Fprintln(os.Stderr, "पढ़ने में त्रुटि:", err)\n    }\n}
\n\n

2. टेक्स्ट और फ़ॉर्मेटिंग के साथ कार्य: पैकेज strings, fmt, strconv

\n\n

पैकेज strings में स्ट्रिंग्स के साथ काम करने के लिए सैकड़ों उपयोगी फ़ंक्शन हैं: खोज, प्रतिस्थापन, विभाजन, संयोजन, रिक्त स्थान हटाना और भी बहुत कुछ। पैकेज strconv स्ट्रिंग्स को संख्याओं में (और वापस) बदलने के साथ-साथ बूलियन मानों को पार्स करने के लिए जिम्मेदार है।

\n\n

पैकेज fmt फ़ॉर्मेटेड आउटपुट के लिए एक "स्विस आर्मी चाकू" है। यह Printf, Sprintf और Fprintf फ़ंक्शन लागू करता है, जो Stringer इंटरफ़ेस को लागू करने वाले किसी भी प्रकार के साथ काम करते हैं।

\n\n
package main\n\nimport (\n    "fmt"\n    "strconv"\n    "strings"\n)\n\nfunc main() {\n    // स्ट्रिंग को विभाजित करना\n    parts := strings.Split("a,b,c", ",")\n    fmt.Println(parts) // [a b c]\n\n    // स्ट्रिंग को संख्या में बदलना\n    num, _ := strconv.Atoi("42")\n    fmt.Printf("संख्या: %d\\n", num) // संख्या: 42\n\n    // फ़ील्ड चौड़ाई के साथ फ़ॉर्मेटिंग\n    fmt.Printf("|%10s|%5d|\\n", "नमस्ते", 123)\n}
\n\n

3. नेटवर्क और HTTP: पैकेज net, net/http

\n\n

पैकेज net TCP/UDP, DNS और IP पतों के साथ काम करने के लिए निम्न-स्तरीय प्रिमिटिव प्रदान करता है। लेकिन असली "स्टार" पैकेज net/http है। यह बिना किसी तृतीय-पक्ष निर्भरता के पूर्ण HTTP सर्वर और क्लाइंट बनाने की अनुमति देता है।

\n\n

अंतर्निहित http.ServerMux और middleware दृष्टिकोण के लिए धन्यवाद, आप आसानी से अनुरोधों को रूट कर सकते हैं, JSON को संसाधित कर सकते हैं, कुकीज़ और सत्रों का प्रबंधन कर सकते हैं। Go मानक पुस्तकालय का उपयोग Docker, Kubernetes और Dropbox जैसे दिग्गजों द्वारा उत्पादन में किया जाता है।

\n\n
package main\n\nimport (\n    "encoding/json"\n    "fmt"\n    "net/http"\n)\n\ntype Response struct {\n    Message string `json:"message"`\n}\n\nfunc helloHandler(w http.ResponseWriter, r *http.Request) {\n    if r.Method != http.MethodGet {\n        http.Error(w, "विधि समर्थित नहीं है", http.StatusMethodNotAllowed)\n        return\n    }\n\n    resp := Response{Message: "नमस्ते, दुनिया!"}\n    w.Header().Set("Content-Type", "application/json")\n    json.NewEncoder(w).Encode(resp)\n}\n\nfunc main() {\n    http.HandleFunc("/api/hello", hello                    

अनुशंसाएँ