mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2025-04-27 07:33:57 +00:00
[go/it-it] Wording and missing translation
This commit is contained in:
parent
b443f3c7f2
commit
9ac6b5775b
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user