Κοινή χρήση τεχνολογίας

Λεπτομερές φροντιστήριο γλώσσας Go

2024-07-12

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

Η γλώσσα Go, γνωστή και ως Golang, είναι μια γλώσσα προγραμματισμού ανοιχτού κώδικα που σχεδιάστηκε από την Google. Έχει σχεδιαστεί για να παρέχει αποτελεσματική ταχύτητα ανάπτυξης, καλή απόδοση, συνοπτική σύνταξη και ισχυρή τυπική βιβλιοθήκη. Η γλώσσα Go είναι ιδιαίτερα κατάλληλη για την κατασκευή μεγάλης κλίμακας κατανεμημένων συστημάτων και αρχιτεκτονικών μικροϋπηρεσιών. Αυτό το άρθρο θα σας βοηθήσει να μάθετε τη γλώσσα Go από την αρχή, καλύπτοντας βασική σύνταξη, προηγμένες δυνατότητες, βέλτιστες πρακτικές και πρακτικές εφαρμογές.

Δείτε τον πηγαίο κώδικα του έργου στο κάτω μέρος

1. Βασικά στοιχεία της γλώσσας Go

1.1 Εγκαταστήστε το περιβάλλον Go

Αρχικά, πρέπει να εγκαταστήσετε το περιβάλλον Go στον υπολογιστή σας. Επισκεφθείτε την επίσημη ιστοσελίδα της Go (https://golang.org/dl/) Κατεβάστε το πακέτο γλώσσας Go κατάλληλο για το λειτουργικό σας σύστημα και ακολουθήστε τις οδηγίες για να το εγκαταστήσετε.

1.2 Πρόγραμμα Hello World

Πηγαίνω

σκοτεινή έκδοση

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

1.3 Τύποι δεδομένων

Η γλώσσα Go παρέχει μια ποικιλία από ενσωματωμένους τύπους δεδομένων, συμπεριλαμβανομένων ακεραίων (int, int8, int16, int32, int64), τύπους κινητής υποδιαστολής (float32, float64), Boolean (bool), συμβολοσειράς (string) κ.λπ.

1.4 Δομή ελέγχου

Η γλώσσα Go υποστηρίζει εντολές if, για βρόχους, εντολές εναλλαγής και δηλώσεις αναβολής για τον έλεγχο της ροής του προγράμματος.

1.5 Λειτουργίες

Οι συναρτήσεις είναι η βασική μονάδα εκτέλεσης της γλώσσας Go. Οι συναρτήσεις μπορούν να δέχονται παραμέτρους και να επιστρέφουν αποτελέσματα.

Πηγαίνω

σκοτεινή έκδοση

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

1.6 Δείκτες

Οι δείκτες χρησιμοποιούνται στη γλώσσα Go για απευθείας χειρισμό διευθύνσεων μνήμης.με τη χρήση*και&Χειριστή, μπορείτε να λάβετε τη διεύθυνση μιας μεταβλητής και την τιμή που επισημαίνεται από τη διεύθυνση.

Πηγαίνω

σκοτεινή έκδοση

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

2. Προηγμένη γλώσσα Go

2.1 Διεπαφή

Μια διεπαφή στο Go ορίζει ένα σύνολο μεθόδων που πρέπει να εφαρμόσει ένας τύπος. Οι διεπαφές κάνουν τον κώδικα πιο ευέλικτο και επαναχρησιμοποιήσιμο.

Πηγαίνω

σκοτεινή έκδοση

  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}

2.2 Χειρισμός σφαλμάτων

Η γλώσσα Go συνιστά τη χρήση τιμών επιστροφής σφαλμάτων για τον χειρισμό εξαιρέσεων.

Πηγαίνω

σκοτεινή έκδοση

  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}

2.3 Συγχρονισμός και γορουτίνα

Το μοντέλο συγχρονισμού της γλώσσας Go βασίζεται σε ελαφριές γορουτίνες και κανάλια. Το Goroutine είναι ένα νήμα σε επίπεδο χρήστη στη γλώσσα Go και το κανάλι χρησιμοποιείται για την επικοινωνία και τον συγχρονισμό μεταξύ των γορουτίνων.

Πηγαίνω

σκοτεινή έκδοση

  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}

2.4 Πλαίσιο

Το πλαίσιο χρησιμοποιείται για τη μετάδοση σημάτων ακύρωσης μεταξύ των γκορουτίνων, επιτρέποντας στο πρόγραμμα να τερματίζει με χάρη τις μακροχρόνιες γορουτίνες.

Πηγαίνω

σκοτεινή έκδοση

  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. Βέλτιστες πρακτικές γλώσσας

3.1 Οργάνωση κωδικών

Η γλώσσα Go συνιστά τη χρήση μιας αρθρωτής προσέγγισης για την οργάνωση του κώδικα Κάθε κατάλογος αντιπροσωπεύει ένα πακέτο και ορίζει ένα ή περισσότερα αρχεία .go σε αυτό.

3.2 Διαχείριση εξαρτήσεων

Σύστημα μονάδας Go (go mod ) χρησιμοποιείται για τη διαχείριση εξωτερικών εξαρτήσεων του έργου.χρήσηgo getκαιgo mod tidyΕντολές για προσθήκη και οργάνωση εξαρτήσεων.

3.3 Δοκιμές

Η γλώσσα Go έχει ενσωματωμένο ισχυρό πλαίσιο δοκιμών, χρήσηtestingπακέτο για να γράψετε δοκιμαστικές περιπτώσεις.

Πηγαίνω

σκοτεινή έκδοση

  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}

3.4 Κατασκευή και ανάπτυξη

χρήσηgo buildΕντολή για τη δημιουργία του εκτελέσιμου αρχείου, χρησιμοποιήστεgo installΕγκαταστήστε το έργο σε$GOPATH/binκατάλογο για τη διευκόλυνση των κλήσεων συστήματος.

4. Πρακτική εφαρμογή της γλώσσας Go

Η γλώσσα Go χρησιμοποιείται ευρέως σε υπηρεσίες back-end, προγραμματισμό δικτύου, αρχιτεκτονική microservice, εργαλεία DevOps, βάσεις δεδομένων, ενδιάμεσο λογισμικό και άλλα σενάρια.

4.1 Αρχιτεκτονική μικροϋπηρεσιών

Η υψηλή ταυτόχρονη φύση της γλώσσας Go την καθιστά ιδανική επιλογή για την κατασκευή μικροϋπηρεσιών.

4.2 Προγραμματισμός δικτύου

Η τυπική βιβλιοθήκη της γλώσσας Go παρέχει ένα πλούσιο API προγραμματισμού δικτύου, που περιλαμβάνει διακομιστή HTTP, πελάτη, WebSocket, TCP/IP κ.λπ.

4.3 Εργαλεία DevOps

Η γλώσσα Go έχει γρήγορη ταχύτητα μεταγλώττισης και ισχυρή φορητότητα και είναι κατάλληλη για την ανάπτυξη εργαλείων DevOps, όπως ενορχήστρωση κοντέινερ, συνεχής ενοποίηση και εργαλεία συνεχούς ανάπτυξης.

5. Περίληψη

Η γλώσσα Go έχει γίνει σταδιακά μια από τις κύριες γλώσσες για τη σύγχρονη ανάπτυξη λογισμικού με τη συνοπτική σύνταξη, την ισχυρή τυπική βιβλιοθήκη και το αποτελεσματικό μοντέλο ταυτόχρονης χρήσης. Μελετώντας αυτό το άρθρο, όχι μόνο θα κατακτήσετε τις βασικές γνώσεις της γλώσσας Go, αλλά θα κατανοήσετε και τις προηγμένες δυνατότητες και τις βέλτιστες πρακτικές της, θέτοντας γερά θεμέλια για τη μελλοντική ανάπτυξη της γλώσσας Go. Είτε δημιουργείτε υπηρεσίες back-end υψηλής απόδοσης είτε αναπτύσσετε πολύπλοκα κατανεμημένα συστήματα, η γλώσσα Go θα είναι ο απαραίτητος συνεργάτης σας.

Διεύθυνση λήψης πηγαίου κώδικα έργου:https://download.csdn.net/download/qq_42072014/89531977