[go/it-it] Wording and missing translation

This commit is contained in:
Chris54721 2017-10-27 20:44:07 +02:00 committed by GitHub
parent b443f3c7f2
commit 9ac6b5775b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -26,14 +26,14 @@ Aggiunge la concorrenza in maniera diretta e semplice da capire, per far
forza sulle CPU multi-core di oggigiorno. Presenta caratteristiche utili forza sulle CPU multi-core di oggigiorno. Presenta caratteristiche utili
per la programmazione in larga scala. per la programmazione in larga scala.
Go comes with a great standard library and an enthusiastic community. Go include un'ottima libreria standard e ha una community entusiasta.
```go ```go
// Commento su riga singola // Commento su riga singola
/* Commento /* Commento
su riga multipla */ su riga multipla */
// In cima a ogni file è necessario specificare il package. // In cima ad ogni file è necessario specificare il package.
// Main è un package speciale che identifica un eseguibile anziché una libreria. // Main è un package speciale che identifica un eseguibile anziché una libreria.
package main package main
@ -65,19 +65,19 @@ func oltreIlCiaoMondo() {
x = 3 // Assegnazione di una variabile. x = 3 // Assegnazione di una variabile.
// E' possibile la dichiarazione "rapida" := per inferire il tipo, dichiarare e assegnare contemporaneamente. // E' possibile la dichiarazione "rapida" := per inferire il tipo, dichiarare e assegnare contemporaneamente.
y := 4 y := 4
// Una funzione che ritorna due valori. // Una funzione che restituisce due valori.
somma, prod := imparaMoltepliciValoriDiRitorno(x, y) somma, prod := imparaMoltepliciValoriRestituiti(x, y)
fmt.Println("somma:", somma, "prodotto:", prod) // Semplice output. fmt.Println("somma:", somma, "prodotto:", prod) // Semplice output.
imparaTipi() // < y minuti, devi imparare ancora! imparaTipi() // < y minuti, devi imparare ancora!
} }
/* <- commento su righe multiple /* <- commento su righe multiple
Le funzioni possono avere parametri e ritornare (molteplici!) valori. Le funzioni possono avere parametri e restituire (molteplici!) valori.
Qua, x e y sono gli argomenti, mentre somma e prod sono i valori ritornati. In questo esempio, x e y sono gli argomenti, mentre somma e prod sono i valori restituiti.
Da notare il fatto che x e somma vengono dichiarati come interi. Da notare il fatto che x e somma vengono dichiarati come interi.
*/ */
func imparaMoltepliciValoriDiRitorno(x, y int) (somma, prod int) { func imparaMoltepliciValoriRestituiti(x, y int) (somma, prod int) {
return x + y, x * y // Ritorna due valori. return x + y, x * y // Restituisce due valori.
} }
// Ecco alcuni tipi presenti in Go // Ecco alcuni tipi presenti in Go
@ -86,7 +86,7 @@ func imparaTipi() {
str := "Impara il Go!" // Tipo stringa. str := "Impara il Go!" // Tipo stringa.
s2 := `Una stringa letterale s2 := `Una stringa letterale
puo' includere andata a capo.` // Sempre di tipo stringa. può includere andata a capo.` // Sempre di tipo stringa.
// Stringa letterale non ASCII. I sorgenti Go sono in UTF-8. // Stringa letterale non ASCII. I sorgenti Go sono in UTF-8.
g := 'Σ' // Il tipo runa, alias per int32, è costituito da un code point unicode. g := 'Σ' // Il tipo runa, alias per int32, è costituito da un code point unicode.
@ -144,20 +144,20 @@ puo' includere andata a capo.` // Sempre di tipo stringa.
imparaControlloDiFlusso() // Torniamo in carreggiata. imparaControlloDiFlusso() // Torniamo in carreggiata.
} }
// In Go è possibile associare dei nomi ai valori di ritorno di una funzione. // In Go è possibile associare dei nomi ai valori restituiti da una funzione.
// Assegnare un nome al tipo di dato ritornato permette di fare return in vari // Assegnare un nome al tipo di dato restituito permette di fare return in vari
// punti all'interno del corpo della funzione, ma anche di usare return senza // punti all'interno del corpo della funzione, ma anche di usare return senza
// specificare in modo esplicito che cosa ritornare. // specificare in modo esplicito che cosa restituire.
func imparaValoriDiRitornoConNome(x, y int) (z int) { func imparaValoriRestituitiConNome(x, y int) (z int) {
z = x * y z = x * y
return // z è implicito, perchè compare nella definizione di funzione. return // z è implicito, perchè compare nella definizione di funzione.
} }
// Go è dotato di garbage collection. Ha i puntatori, ma non l'aritmetica dei // Go è dotato di garbage collection. Ha i puntatori, ma non l'aritmetica dei
// puntatori. Puoi fare errori coi puntatori a nil, ma non puoi direttamente // puntatori. Puoi commettere errori a causa di puntatori nulli, ma non puoi
// incrementare un puntatore. // incrementare un puntatore direttamente.
func imparaLaMemoria() (p, q *int) { func imparaLaMemoria() (p, q *int) {
// I valori di ritorno (con nome) p e q sono puntatori a int. // I valori restituiti (con nome) p e q sono puntatori a int.
p = new(int) // La funzione new si occupa di allocare memoria. p = new(int) // La funzione new si occupa di allocare memoria.
// L'int allocato viene inizializzato a 0, dunque p non è più nil. // L'int allocato viene inizializzato a 0, dunque p non è più nil.
s := make([]int, 20) // Alloca 20 int come un singolo blocco di memoria. s := make([]int, 20) // Alloca 20 int come un singolo blocco di memoria.
@ -207,14 +207,14 @@ func imparaControlloDiFlusso() {
} }
// x == 42 qua. // x == 42 qua.
// Il for è l'unica istruzione per ciclare in Go, ma ha varie forme. // Il for è l'unica istruzione per i loop in Go, ma ha varie forme.
for { // Ciclo infinito. for { // Ciclo infinito.
break // Scherzavo. break // Scherzavo.
continue // Non si arriva qua. continue // Non si arriva qua.
} }
// Puoi usare range per ciclare su un vettore, slice, stringa, mappa o canale. // Puoi usare range per iterare lungo un vettore, slice, stringa, mappa o canale.
// range ritorna uno (per i canali) o due valori (vettore, slice, stringa, mappa). // range restituisce uno (per i canali) o due valori (vettore, slice, stringa, mappa).
for chiave, valore := range map[string]int{"uno": 1, "due": 2, "tre": 3} { for chiave, valore := range map[string]int{"uno": 1, "due": 2, "tre": 3} {
// per ogni coppia dentro la mappa, stampa chiave e valore // per ogni coppia dentro la mappa, stampa chiave e valore
fmt.Printf("chiave=%s, valore=%d\n", chiave, valore) fmt.Printf("chiave=%s, valore=%d\n", chiave, valore)
@ -236,7 +236,7 @@ func imparaControlloDiFlusso() {
// Inoltre le funzioni letterali possono essere definite e chiamate // Inoltre le funzioni letterali possono essere definite e chiamate
// inline, col ruolo di parametri di funzione, a patto che: // inline, col ruolo di parametri di funzione, a patto che:
// a) la funzione letterale venga chiamata subito (), // a) la funzione letterale venga chiamata subito (),
// b) il valore ritornato è in accordo con il tipo dell'argomento. // b) il valore restituito è in accordo con il tipo dell'argomento.
fmt.Println("Somma e raddoppia due numeri: ", fmt.Println("Somma e raddoppia due numeri: ",
func(a, b int) int { func(a, b int) int {
return (a + b) * 2 return (a + b) * 2
@ -247,7 +247,7 @@ func imparaControlloDiFlusso() {
goto amore goto amore
amore: amore:
imparaFabbricaDiFunzioni() // Una funzione che ritorna un'altra funzione è divertente! imparaFabbricaDiFunzioni() // Una funzione che restituisce un'altra funzione è divertente!
imparaDefer() // Un tour veloce di una parola chiave importante. imparaDefer() // Un tour veloce di una parola chiave importante.
imparaInterfacce() // Arriva la roba buona! imparaInterfacce() // Arriva la roba buona!
} }
@ -271,7 +271,7 @@ func fabbricaDiFrasi(miaStringa string) func(prima, dopo string) string {
func imparaDefer() (ok bool) { func imparaDefer() (ok bool) {
// Le istruzioni dette "deferred" (rinviate) sono eseguite // Le istruzioni dette "deferred" (rinviate) sono eseguite
// appena prima che la funzione ritorni. // appena prima che la funzione abbia termine.
defer fmt.Println("le istruzioni 'deferred' sono eseguite in ordine inverso (LIFO).") defer fmt.Println("le istruzioni 'deferred' sono eseguite in ordine inverso (LIFO).")
defer fmt.Println("\nQuesta riga viene stampata per prima perché") defer fmt.Println("\nQuesta riga viene stampata per prima perché")
// defer viene usato di solito per chiudere un file, così la funzione che // defer viene usato di solito per chiudere un file, così la funzione che