गो, जिसे गोलेनग के नाम से भी जाना जाता है, एक स्थिर प्रकार की, संकलित प्रोग्रामिंग भाषा है जिसे गूगल द्वारा डिज़ाइन किया गया है। इसे सॉफ़्टवेयर विकास को सरल बनाने और प्रोग्रामिंग उत्पादकता में सुधार करने के लिए बनाया गया था, विशेष रूप से बड़े पैमाने पर वितरित प्रणालियों के लिए। गो में एक साफ और न्यूनतम सिंटैक्स, कुशल प्रदर्शन, और समवर्तीता के लिए अंतर्निहित समर्थन है, जो इसे क्लाउड सेवाओं, माइक्रोसर्विसेज, और नेटवर्केड अनुप्रयोगों पर काम करने वाले डेवलपर्स के लिए एक आकर्षक विकल्प बनाता है।
गो का विकास 2007 में गूगल में रॉबर्ट ग्रिसेमर, रॉब पाइक, और केन थॉम्पसन द्वारा किया गया था। यह भाषा उन चुनौतियों के जवाब में बनाई गई थी जो डेवलपर्स को C++ और जावा जैसी मौजूदा भाषाओं के साथ प्रदर्शन, निर्भरता प्रबंधन, और संकलन समय के संबंध में सामना करना पड़ा। डिज़ाइनरों ने सरलता, दक्षता, और अभिव्यक्ति पर जोर दिया।
गो को नवंबर 2009 में जनता के लिए घोषित किया गया। इसके प्रारंभिक संस्करणों ने जल्दी ही लोकप्रियता हासिल की क्योंकि वे साफ सिंटैक्स और समवर्तीता पर ध्यान केंद्रित करते थे, जो बड़े टीमों और जटिल परियोजनाओं पर काम करने वाले डेवलपर्स के लिए आकर्षक थे। इसके अलावा, मजबूत मानक पुस्तकालय, जिसमें HTTP, JSON, और फ़ाइल I/O को संभालने के लिए पैकेज शामिल थे, ने भाषा के अपनाने को और बढ़ाया।
अक्टूबर 2023 तक, गो ने एक मजबूत पारिस्थितिकी तंत्र विकसित किया है जिसमें एक जीवंत समुदाय और विभिन्न पुस्तकालय और ढांचे शामिल हैं। इसका उपयोग क्लाउड-नेटिव अनुप्रयोगों के विकास में व्यापक रूप से किया जाता है और इसे कई संगठनों द्वारा अपनाया गया है, जिसमें गूगल, ड्रॉपबॉक्स, और नेटफ्लिक्स जैसी प्रमुख तकनीकी कंपनियाँ शामिल हैं। यह भाषा लगातार विकसित हो रही है, नियमित अपडेट के साथ जो प्रदर्शन में सुधार करते हैं, नए फीचर्स पेश करते हैं, और डेवलपर अनुभव को बढ़ाते हैं।
गो मजबूत स्थैतिक प्रकार का उपयोग करता है, जिसका अर्थ है कि चर के प्रकार संकलन समय पर ज्ञात होते हैं। यह विशेषता प्रोग्राम चलने से पहले कई त्रुटियों को पकड़ने में मदद करती है।
var x int = 10
गो में गोरोटीन के माध्यम से समवर्तीता के लिए अंतर्निहित समर्थन है, जो गो रनटाइम द्वारा प्रबंधित हल्के थ्रेड होते हैं। यह समवर्ती प्रोग्राम लिखना आसान बनाता है।
go func() {
fmt.Println("Hello from a goroutine!")
}()
चैनल गो में गोरोटीन के बीच सुरक्षित संचार के लिए उपयोग किए जाते हैं। वे एक गोरोटीन को दूसरे को डेटा भेजने का एक तरीका प्रदान करते हैं।
ch := make(chan int)
go func() {
ch <- 42
}()
value := <-ch
गो समग्र प्रकारों जैसे संरचनाएँ और इंटरफेस का समर्थन करता है, जिससे डेवलपर्स को मॉड्यूलर और पुन: प्रयोज्य कोड बनाने की अनुमति मिलती है।
type Person struct {
Name string
Age int
}
गो में स्विच कथन बहुपरकारी होते हैं और विभिन्न प्रकारों पर कार्य कर सकते हैं, जिसमें स्ट्रिंग, पूर्णांक, और यहां तक कि प्रकार भी शामिल हैं।
switch x := 2; x {
case 1:
fmt.Println("One")
case 2:
fmt.Println("Two")
default:
fmt.Println("Other")
}
गो प्रकारों के एम्बेडिंग की अनुमति देता है ताकि कोड पुन: उपयोग को बढ़ावा दिया जा सके और अधिक जटिल डेटा प्रकार बनाए जा सकें।
type Employee struct {
Person // Person संरचना को एम्बेड करना
Salary int
}
गो में डिफर कथन का उपयोग यह सुनिश्चित करने के लिए किया जाता है कि एक फ़ंक्शन कॉल प्रोग्राम निष्पादन में बाद में किया जाए, आमतौर पर सफाई के लिए।
func main() {
defer fmt.Println("Clean up!")
fmt.Println("Hello")
}
गो का त्रुटि प्रबंधन का दृष्टिकोण कई लौटाने वाले मानों का उपयोग करता है, जिससे फ़ंक्शन एक परिणाम और एक त्रुटि दोनों लौटाने की अनुमति मिलती है।
result, err := divide(10, 2)
if err != nil {
fmt.Println("Error:", err)
} else {
fmt.Println("Result:", result)
}
स्लाइस एरे के साथ काम करने का एक लचीला तरीका प्रदान करते हैं और निश्चित-लंबाई वाले एरे की तुलना में अधिक शक्तिशाली होते हैं।
s := []int{1, 2, 3}
s = append(s, 4) // Append अंतर्निहित फ़ंक्शन है
गो की पैकेज प्रणाली कोड संगठन और मॉड्यूलरिटी का समर्थन करती है, जिससे कोड को पैकेजों में विभाजित किया जा सकता है जिन्हें परियोजनाओं में पुन: उपयोग किया जा सकता है।
package main
import "fmt"
गो प्रोग्राम आमतौर पर गो संकलक (gc
) का उपयोग करके मशीन कोड में संकलित होते हैं। गो रनटाइम मेमोरी प्रबंधन, गोरोटीन का शेड्यूलिंग, और गार्बेज कलेक्शन प्रदान करने के लिए जिम्मेदार है।
कई एकीकृत विकास वातावरण (IDEs) और पाठ संपादक गो विकास का समर्थन करते हैं, जिनमें शामिल हैं:
गो परियोजना बनाना गो टूलचेन का उपयोग करके सीधा है। सामान्य आदेशों में शामिल हैं:
go build
: पैकेजों और निर्भरताओं को संकलित करता है।go run
: गो प्रोग्राम को संकलित और चलाता है।go test
: परीक्षण चलाता है।परियोजनाएँ आमतौर पर निर्देशिकाओं में व्यवस्थित होती हैं, जिसमें निर्भरता प्रबंधन के लिए एक go.mod
फ़ाइल होती है।
गो का उपयोग विभिन्न अनुप्रयोगों में प्रमुखता से किया जाता है, विशेष रूप से क्लाउड कंप्यूटिंग, नेटवर्किंग, और माइक्रोसर्विसेज में। सामान्य अनुप्रयोगों में शामिल हैं:
गो को अक्सर अन्य भाषाओं के साथ इसकी अद्वितीय विशेषताओं के कारण तुलना की जाती है।
गो में कोड का अनुवाद करते समय निम्नलिखित टिप्स पर विचार करें:
हालांकि गो के लिए विशेष रूप से समर्पित स्रोत-से-स्रोत अनुवाद उपकरण सीमित हैं, निम्नलिखित उपकरण संक्रमण में मदद कर सकते हैं: