Go: che cos’è e come funziona il linguaggio di programmazione di Google

Argomenti:
Pubblicato il: 18-04-2022 14:56

Go ha anche un altro nome, Golang (dove il nome significava Go Language, ovviamente), ma il suo nome proprio è Go, a causa del suo precedente nome di dominio, golang.org, ma il suo nome proprio è Go.

Dettagli sul funzionamento di Go

Go è un linguaggio di programmazione compilato e tipizzato in modo statico, progettato interamente dallo staff di programmatori di Google. Go è stato creato da Robert Griesemer, Rob Pike e Ken Thompson, che attualmente lavorano al progetto. Si tratta di un linguaggio sintatticamente molto simile a C, ma con una gestione migliorata della sicurezza sulla memoria, meccanismi di garbage collection, tipizzazione strutturata e programmazione concorrente in stile linguaggio CSP. Ci sono due implementazioni principali disponibili, una hosted by Google e l’altra da lanciare in autonomia: il motore software di Go è infatti disponibile come software open source.

Sintassi di Go

La sintassi di Go include aspetti tipici del linguaggio C, e non prevede l’uso di punti e virgola per delimitare le istruzioni (come in Python). È stato introdotto un particolare operatore combinato di dichiarazione/inizializzazione che consente al programmatore di scrivere i := 2 o s := “Ciao Mondo!”, senza specificare i tipi, esattamente come avverrebbe in PHP.

Go aggiunge la possibilità di utilizare letterali per l’inizializzazione dei parametri struct in base al nome e per l’inizializzazione di map e tipi complessi o composti. In alternativa al ciclo for a tre istruzioni di C, le espressioni di intervallo di Go consentono un’iterazione concisa su array, sezioni, stringhe, mappe e canali.

Go offre inoltre una serie di tipi incorporati, inclusi quelli numerici (ad esempio byte, int64, float32), Booleani e stringhe di caratteri (stringa). Le stringhe sono immutabili, la codifica e decodifica è nativamente UTF-8. I tipi di record personalizzati possono essere definiti con la parola chiave struct, come abbiamo appena accennato

Per ogni tipo T e per ogni costante intera non negativa n, esiste un tipo di array indicato con [n]T; array di lunghezze diverse sono quindi di tipi diversi. Gli array dinamici sono disponibili come “slice”, indicati con []T per alcuni tipi T. Questi hanno una lunghezza e una capacità che specificano quando è necessario allocare nuova memoria per espandere l’array.

I puntatori sono disponibili per tutti i tipi e il tipo da puntatore a T è indicato con *T. L’assunzione di indirizzi e l’indirizzamento indiretto utilizzano gli operatori & e *, come in C, o avvengono implicitamente tramite la chiamata al metodo o la sintassi di accesso all’attributo. Non è consentito effettuare aritmetica del puntatore, se non tramite lo speciale tipo di variabile unsafe.Pointer nella libreria standard di Go.

Un esempio di funzione in Go è la seguente, che verifica se l’indirizzo IPv4 che gli passi sia di broadcast oppure no:

func (addr ipv4addr) ZeroAddress() bool {
    return addr == 0xFFFFFFFF
}

Cosa si può fare in Go

Con Go è possibile realizzare sia applicazioni a linea di comando che applicazioni web, eventualmente sfruttando GopherJS che permette di tradurre automaticamente Go in Javascript. All’interno del sito ufficiale è possibile testare il codice direttamente nel sito, realizzando un semplice Hello, World! con poche righe di codice:

package main
import "fmt"
func main() {
fmt.Println("Hello, amicone del cuore")
}

Il risultato è il seguente.

Se invece volessimo fare la stessa cosa lato web, si potrebbe fare in questi termini:

package main
import (
    "fmt"
    "log"
    "net/http"    
)
func helloFunc(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hello world!")
}
func main() {
    http.HandleFunc("/", helloFunc)
    log.Fatal(http.ListenAndServe(":8080", nil))
}

Dove e come scaricare Go

go.dev

Photo by Max Duzij on Unsplash


Questo articolo contiene 575 parole – Questo blog esiste da 3.759 giorni.
Nessun voto disponibile

Che te ne pare?

Grazie per aver letto Go: che cos’è e come funziona il linguaggio di programmazione di Google di Max Headroom su Trovalost.it
Go: che cos’è e come funziona il linguaggio di programmazione di Google (Guide, Nuove tecnologie)

Articoli più letti su questi argomenti: