प्रौद्योगिकी साझेदारी

गो भाषा विस्तृत पाठ्यक्रम

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

गो भाषा, या गोलाङ्ग इति अपि ज्ञायते, गूगलेन परिकल्पिता मुक्तस्रोतप्रोग्रामिंगभाषा अस्ति । इदं कुशलविकासवेगं, उत्तमं प्रदर्शनं, संक्षिप्तवाक्यविन्यासः, शक्तिशालिनः मानकपुस्तकालयः च प्रदातुं विनिर्मितः अस्ति । गो भाषा विशेषतया बृहत्-परिमाणेन वितरित-प्रणालीनां, सूक्ष्मसेवा-वास्तुकला-निर्माणाय उपयुक्ता अस्ति । अयं लेखः भवन्तं Go भाषां शुद्धतः ज्ञातुं साहाय्यं करिष्यति, यत्र मूलभूतवाक्यविन्यासः, उन्नतविशेषताः, उत्तमप्रथाः, व्यावहारिकाः अनुप्रयोगाः च समाविष्टाः सन्ति ।

अधः परियोजनायाः स्रोतसङ्केतं पश्यन्तु

1. गो भाषायाः मूलभूताः

1.1 Go वातावरणं संस्थापयन्तु

प्रथमं भवद्भिः स्वसङ्गणके Go वातावरणं संस्थापनीयम् । Go आधिकारिकजालस्थलं पश्यन्तु (https://golang.org/dl/) स्वस्य ऑपरेटिंग् सिस्टम् कृते उपयुक्तं Go language package डाउनलोड् कृत्वा तत् संस्थापयितुं निर्देशान् अनुसरणं कुर्वन्तु ।

१.२ हेलो वर्ल्ड कार्यक्रमः

गच्छ

dark version

  1. 1package main
  2. 2
  3. 3import "fmt"
  4. 4
  5. 5func main() {
  6. 6 fmt.Println("Hello, World!")
  7. 7}

१.३ दत्तांशप्रकाराः

Go भाषा विविधान् अन्तःनिर्मितदत्तांशप्रकारं प्रदाति, यत्र पूर्णाङ्काः (int, int8, int16, int32, int64), प्लवमानबिन्दुप्रकाराः (float32, float64), Boolean (bool), स्ट्रिंग् (string) इत्यादयः सन्ति

१.४ नियन्त्रणसंरचना

Go भाषा if स्टेट्मेण्ट् समर्थयति, for loops, switch स्टेट्मेण्ट् तथा defer स्टेट्मेण्ट् प्रोग्राम् इत्यस्य प्रवाहं नियन्त्रयति ।

१.५ कार्याणि

कार्याणि गो भाषायाः मूलभूतं निष्पादन-एककं भवति । फंक्शन्स् पैरामीटर्स् स्वीकृत्य परिणामान् प्रत्यागन्तुं शक्नुवन्ति ।

गच्छ

dark version

  1. 1func add(x int, y int) int {
  2. 2 return x + y
  3. 3}

१.६ सूचकाः

स्मृतिसङ्केतानां प्रत्यक्षं परिवर्तनार्थं Go भाषायां सूचकानां उपयोगः भवति ।उपयोगेन*तथा&ऑपरेटर्, भवान् चरस्य पतां, पताद्वारा सूचितं मूल्यं च प्राप्तुं शक्नोति ।

गच्छ

dark version

  1. 1func increment(p *int) {
  2. 2 *p++
  3. 3}

2. उन्नत गो भाषा

२.१ अन्तरफलकम्

Go इत्यस्मिन् एकः अन्तरफलकः विधिसमूहं परिभाषयति यत् प्रकारेण कार्यान्वयनीयम् । अन्तरफलकाः कोडं अधिकं लचीलं पुनः उपयोगयोग्यं च कुर्वन्ति ।

गच्छ

dark version

  1. 1type Shape interface {
  2. 2 Area() float64
  3. 3}
  4. 4
  5. 5type Circle struct {
  6. 6 Radius float64
  7. 7}
  8. 8
  9. 9func (c Circle) Area() float64 {
  10. 10 return math.Pi * c.Radius * c.Radius
  11. 11}

२.२ त्रुटिनियन्त्रणम्

अपवादं नियन्त्रयितुं Go language इत्यनेन error return values ​​इत्यस्य उपयोगं अनुशंसितम् ।

गच्छ

dark version

  1. 1func divide(x, y int) (int, error) {
  2. 2 if y == 0 {
  3. 3 return 0, errors.New("cannot divide by zero")
  4. 4 }
  5. 5 return x / y, nil
  6. 6}

२.३ समवर्ती तथा गोरूटीन

गो भाषायाः समवर्तीप्रतिरूपं लघुगोरूटीन्स्, चैनल्स् च आधारितम् अस्ति । Goroutine इति Go भाषायां उपयोक्तृस्तरीयः सूत्रः अस्ति, तथा च goroutines मध्ये संचारस्य समन्वयस्य च कृते channel इत्यस्य उपयोगः भवति ।

गच्छ

dark version

  1. 1func say(s string) {
  2. 2 for i := 0; i < 5; i++ {
  3. 3 fmt.Println(s)
  4. 4 }
  5. 5}
  6. 6
  7. 7func main() {
  8. 8 go say("world") // 开始一个新的goroutine
  9. 9 say("hello")
  10. 10}

२.४ सन्दर्भः

goroutines मध्ये रद्दीकरणसंकेतान् पारयितुं सन्दर्भस्य उपयोगः भवति, येन कार्यक्रमः दीर्घकालं यावत् चलितानां goroutines इत्यस्य ललिततया समाप्तिं कर्तुं शक्नोति ।

गच्छ

dark version

  1. 1func main() {
  2. 2 ctx, cancel := context.WithCancel(context.Background())
  3. 3 go func() {
  4. 4 select {
  5. 5 case <-ctx.Done():
  6. 6 fmt.Println("operation canceled")
  7. 7 case <-time.After(time.Second * 3):
  8. 8 fmt.Println("operation completed")
  9. 9 }
  10. 10 }()
  11. 11 time.Sleep(time.Second)
  12. 12 cancel()
  13. 13}

3. भाषायाः उत्तमप्रथाः गच्छन्तु

३.१ संहितासङ्गठनम्

Go भाषा कोडस्य आयोजनार्थं मॉड्यूलर-पद्धतेः उपयोगं अनुशंसति प्रत्येकं निर्देशिका एकं संकुलं प्रतिनिधियति तथा च तस्मिन् एकं वा अधिकं .go सञ्चिकां परिभाषयति ।

३.२ आश्रयप्रबन्धनम्

गो मॉड्यूल प्रणाली (go mod ) परियोजनायाः बाह्यनिर्भरतायाः प्रबन्धनार्थं उपयुज्यते ।उपयुञ्जताम्‌go getतथाgo mod tidyआश्रयाणि योजयितुं व्यवस्थितुं च आदेशाः ।

३.३ परीक्षणम्

गो भाषायां अन्तर्निर्मितं शक्तिशाली परीक्षणरूपरेखा अस्ति, उपयोगःtestingपरीक्षणप्रकरणं लिखितुं संकुलम्।

गच्छ

dark version

  1. 1import (
  2. 2 "testing"
  3. 3)
  4. 4
  5. 5func TestAdd(t *testing.T) {
  6. 6 tests := []struct {
  7. 7 x, y, want int
  8. 8 }{
  9. 9 {2, 2, 4},
  10. 10 {1, 3, 4},
  11. 11 {0, 0, 0},
  12. 12 }
  13. 13 for _, tt := range tests {
  14. 14 got := add(tt.x, tt.y)
  15. 15 if got != tt.want {
  16. 16 t.Errorf("add(%d, %d) = %d; want %d", tt.x, tt.y, got, tt.want)
  17. 17 }
  18. 18 }
  19. 19}

३.४ निर्माणं परिनियोजनं च

उपयुञ्जताम्‌go buildकार्यान्वयनीयसञ्चिकां निर्मातुं आदेशः, उपयोगं कुर्वन्तुgo installपरियोजनां संस्थापयन्तु$GOPATH/binप्रणाली-आह्वानस्य सुविधायै निर्देशिका ।

4. गो भाषायाः व्यावहारिकः अनुप्रयोगः

गो भाषायाः व्यापकरूपेण उपयोगः पृष्ठ-अन्त-सेवासु, संजाल-प्रोग्रामिंग्, सूक्ष्मसेवा-आर्किटेक्चरेषु, DevOps-उपकरणेषु, आँकडाधारेषु, मध्यवेयर् इत्यादिषु परिदृश्येषु भवति ।

४.१ सूक्ष्मसेवा वास्तुकला

गो भाषायाः उच्चसमवर्तीत्वं सूक्ष्मसेवानिर्माणार्थं आदर्शविकल्पं करोति ।

४.२ संजालप्रोग्रामिंग्

Go भाषायाः मानकपुस्तकालयः समृद्धं संजालप्रोग्रामिंग एपिआइ प्रदाति, यत्र HTTP सर्वरः, क्लायन्ट्, WebSocket, TCP/IP इत्यादयः सन्ति ।

४.३ DevOps साधनानि

Go भाषायां द्रुतसंकलनवेगः, दृढः पोर्टेबिलिटी च अस्ति, तथा च DevOps उपकरणानां विकासाय उपयुक्ता अस्ति, यथा कंटेनर आर्केस्ट्रेशन, निरन्तर एकीकरणं, निरन्तरनियोजनसाधनं च

5. सारांशः

गो भाषा क्रमेण आधुनिकसॉफ्टवेयरविकासाय मुख्यधाराभाषासु अन्यतमं जातम् अस्ति यस्य संक्षिप्तवाक्यविन्यासः, शक्तिशाली मानकपुस्तकालयः, कुशलसमवर्तीप्रतिरूपः च अस्ति अस्य लेखस्य अध्ययनेन भवन्तः न केवलं गो भाषायाः मूलभूतज्ञानं निपुणाः भविष्यन्ति, अपितु तस्याः उन्नतविशेषताः उत्तमप्रथाः च अवगमिष्यन्ति, भविष्यस्य गोभाषाविकासाय ठोसमूलं स्थापयन्ति। भवान् उच्च-प्रदर्शन-पृष्ठ-अन्त-सेवानां निर्माणं करोति वा जटिल-वितरित-प्रणालीनां विकासं करोति वा, Go भाषा भवतः अनिवार्यः भागीदारः भविष्यति ।

परियोजना स्रोतसङ्केतस्य डाउनलोड् पताः : १.https://download.csdn.net/download/qq_42072014/89531977