Condivisione della tecnologia

Vai al tutorial dettagliato sulla lingua

2024-07-12

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

Il linguaggio Go, noto anche come Golang, è un linguaggio di programmazione open source progettato da Google. È progettato per fornire una velocità di sviluppo efficiente, buone prestazioni, sintassi concisa e una potente libreria standard. Il linguaggio Go è particolarmente adatto per la realizzazione di sistemi distribuiti su larga scala e architetture di microservizi. Questo articolo ti aiuterà a imparare la lingua Go da zero, coprendo la sintassi di base, le funzionalità avanzate, le migliori pratiche e le applicazioni pratiche.

Vedi il codice sorgente del progetto in fondo

1. Nozioni di base sulla lingua Go

1.1 Installare l'ambiente Go

Innanzitutto, devi installare l'ambiente Go sul tuo computer. Visita il sito ufficiale di Go (https://golang.org/dl/) Scarica il pacchetto della lingua Go adatto al tuo sistema operativo e segui le istruzioni per installarlo.

1.2 Programma Ciao Mondo

Andare

versione oscura

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

1.3 Tipi di dati

Il linguaggio Go fornisce una varietà di tipi di dati incorporati, inclusi numeri interi (int, int8, int16, int32, int64), tipi in virgola mobile (float32, float64), booleani (bool), string (string), ecc.

1.4 Struttura di controllo

Il linguaggio Go supporta istruzioni if, cicli for, istruzioni switch e istruzioni differite per controllare il flusso del programma.

1.5 Funzioni

Le funzioni sono l'unità di esecuzione di base del linguaggio Go. Le funzioni possono accettare parametri e restituire risultati.

Andare

versione oscura

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

1.6 Puntatori

I puntatori vengono utilizzati nel linguaggio Go per manipolare direttamente gli indirizzi di memoria.usando*E&Operatore, puoi ottenere l'indirizzo di una variabile e il valore puntato dall'indirizzo.

Andare

versione oscura

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

2. Lingua Go avanzata

2.1 Interfaccia

Un'interfaccia in Go definisce un insieme di metodi che un tipo deve implementare. Le interfacce rendono il codice più flessibile e riutilizzabile.

Andare

versione oscura

  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 Gestione degli errori

Go Language consiglia di utilizzare valori restituiti di errore per gestire le eccezioni.

Andare

versione oscura

  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 Concorrenza e goroutine

Il modello di concorrenza del linguaggio Go si basa su goroutine e canali leggeri. Goroutine è un thread a livello utente nella lingua Go e il canale viene utilizzato per la comunicazione e la sincronizzazione tra le goroutine.

Andare

versione oscura

  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 Contesto

Il contesto viene utilizzato per passare segnali di cancellazione tra goroutine, consentendo al programma di terminare con garbo le goroutine di lunga esecuzione.

Andare

versione oscura

  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. Segui le migliori pratiche linguistiche

3.1 Organizzazione del codice

Il linguaggio Go consiglia di utilizzare un approccio modulare per organizzare il codice. Ciascuna directory rappresenta un pacchetto e definisce uno o più file .go al suo interno.

3.2 Gestione delle dipendenze

Vai al sistema di moduli (go mod ) viene utilizzato per gestire le dipendenze esterne del progetto.utilizzogo getEgo mod tidyComandi per aggiungere e organizzare le dipendenze.

3.3 Test

Go Language dispone di un potente framework di test integrato, da utilizzaretestingpacchetto per scrivere casi di test.

Andare

versione oscura

  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 Costruisci e distribuisci

utilizzogo buildComando per creare il file eseguibile, utilizzarego installInstalla il progetto in$GOPATH/bindirectory per facilitare le chiamate di sistema.

4. Applicazione pratica della lingua Go

Il linguaggio Go è ampiamente utilizzato nei servizi back-end, nella programmazione di rete, nell'architettura dei microservizi, negli strumenti DevOps, nei database, nel middleware e in altri scenari.

4.1 Architettura dei microservizi

L'elevata concorrenza del linguaggio Go lo rende la scelta ideale per la creazione di microservizi.

4.2 Programmazione di rete

La libreria standard del linguaggio Go fornisce una ricca API di programmazione di rete, inclusi server HTTP, client, WebSocket, TCP/IP, ecc.

4.3 Strumenti DevOps

Il linguaggio Go ha un'elevata velocità di compilazione e una forte portabilità ed è adatto per lo sviluppo di strumenti DevOps, come l'orchestrazione dei contenitori, gli strumenti di integrazione continua e di distribuzione continua.

5. Riepilogo

Il linguaggio Go è gradualmente diventato uno dei linguaggi principali per lo sviluppo di software moderno grazie alla sua sintassi concisa, alla potente libreria standard e all'efficiente modello di concorrenza. Studiando questo articolo, non solo acquisirai la conoscenza di base della lingua Go, ma ne comprenderai anche le funzionalità avanzate e le migliori pratiche, ponendo solide basi per il futuro sviluppo della lingua Go. Che tu stia creando servizi back-end ad alte prestazioni o sviluppando sistemi distribuiti complessi, Go Language sarà il tuo partner indispensabile.

Indirizzo di download del codice sorgente del progetto:Scaricare il file Scaricare il file https://download.csdn.net/download/qq_42072014/89531977