Go मानक पुस्तकालय: किसी भी एप्लिकेशन के लिए एक शक्तिशाली आधार
Go (Golang) मानक पुस्तकालय केवल उपयोगिताओं का एक सेट नहीं है। यह एक सावधानीपूर्वक डिज़ाइन किया गया इकोसिस्टम है जो सर्वर, नेटवर्क और कंसोल एप्लिकेशन बनाते समय डेवलपर की 80% जरूरतों को पूरा करता है। कई भाषाओं के विपरीत, जहां मानक पुस्तकालय केवल एक बुनियादी न्यूनतम है, Go में इसमें एक पूर्ण HTTP सर्वर, JSON के साथ काम करने के लिए क्लाइंट, समवर्तीता के लिए शक्तिशाली उपकरण और यहां तक कि एक प्रोफाइलर भी शामिल है। नीचे प्रमुख पैकेजों का विस्तृत विवरण दिया गया है।
1. पैकेज fmt और io: इनपुट-आउटपुट का आधार
पैकेज fmt पहली चीज़ है जिसका सामना एक नौसिखिया करता है। यह फ़ॉर्मेटेड आउटपुट और इनपुट के लिए Printf, Sprintf और Scanf फ़ंक्शन प्रदान करता है। लेकिन असली ताकत पैकेज io और इसके इंटरफेस Reader और Writer में छिपी है।
package main
import ( "fmt" "io" "strings")
func main() { // io.Reader — कोई भी डेटा स्रोत reader := strings.NewReader("नमस्ते, Go!") data, _ := io.ReadAll(reader) fmt.Println(string(data)) // आउटपुट: नमस्ते, Go!}2. पैकेज net/http: 5 पंक्तियों में वेब सर्वर बनाना
Go अपने अंतर्निहित HTTP समर्थन के लिए प्रसिद्ध है। पैकेज net/http बाहरी निर्भरता के बिना एक पूर्ण वेब सर्वर चलाने की अनुमति देता है। यह माइक्रोसर्विसेज और API के लिए एक आदर्श उपकरण है।
package main
import ( "fmt" "net/http")
func handler(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "नमस्ते, %s!", r.URL.Path[1:])}
func main() { http.HandleFunc("/", handler) http.ListenAndServe(":8080", nil) // पोर्ट 8080 पर सर्वर}3. पैकेज encoding/json: बिना दर्द के JSON के साथ काम करना
डेटा का सीरियलाइज़ेशन और डीसीरियलाइज़ेशन एक सामान्य कार्य है। पैकेज encoding/json फ़ील्ड के लचीले मैपिंग के लिए स्ट्रक्चर टैग का उपयोग करता है। यह कई तृतीय-पक्ष पुस्तकालयों की तुलना में तेज़ है, क्योंकि यह Go के लिए अनुकूलित रिफ्लेक्शन स्तर पर काम करता है।
package main
import ( "encoding/json" "fmt")
type User struct { Name string `json:"name"` Age int `json:"age"`}
func main() { jsonStr := `{"name":"Alice","age":30}` var user User json.Unmarshal([]byte(jsonStr), &user) fmt.Printf("%+v", user) // आउटपुट: {Name:Alice Age:30}}4. पैकेज sync: समवर्तीता के लिए उपकरण
Go मल्टीथ्रेडेड एप्लिकेशन के लिए बनाया गया था। पैकेज sync Mutex, RWMutex, WaitGroup और Once प्रदान करता है। लेकिन मुख्य रत्न sync.Map है, जो बार-बार पढ़ने वाले परिदृश्यों के लिए अनुकूलित एक थ्रेड-सेफ map है।
package main
import ( "fmt" "sync")
func main() { var wg sync.WaitGroup for i := 0; i < 5; i++ { wg.Add(1) go func(n int) { defer wg.Done() fmt.Println("गोरूटीन:", n) }(i) } wg.Wait() // सभी गोरूटीन के पूरा होने की प्रतीक्षा करें}5. पैकेज strings और strconv: टेक्स्ट के साथ काम करना
पैकेज strings में स्ट्रिंग्स को खोजने, बदलने, विभाजित करने और जोड़ने के लिए फ़ंक्शन शामिल हैं। strconv स्ट्रिंग्स को संख्याओं में और वापस बदलने के साथ-साथ वर्णों को एस्केप करने के लिए जिम्मेदार है। ये पैकेज असेंबली में लिखे गए हैं और अधिकतम प्रदर्शन के साथ काम करते हैं।
package main
import ( "fmt" "strings" "strconv")
func main() { // strings phrase := "hello world" fmt.Println(strings.ToUpper(phrase)) // HELLO WORLD
// strconv num, _ := strconv.Atoi("42") fmt.Println(num + 8) // 50}6. पैकेज testing: अंतर्निहित परीक्षण
Go में परीक्षण के लिए एक शक्तिशाली फ्रेमवर्क शामिल है