Skip to content

Commit 00df4e9

Browse files
committed
Translate the standard website into italian; make the build system actually work.
1 parent 4bd0296 commit 00df4e9

File tree

109 files changed

+831
-749
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

109 files changed

+831
-749
lines changed

examples/arrays/arrays.go

+33-33
Original file line numberDiff line numberDiff line change
@@ -7,37 +7,37 @@ import "fmt"
77

88
func main() {
99

10-
// Qui creaiamo un array chiamato `a` che conterrà esattamente
11-
// 5 elementi di tipo `int`. Il tipo degli elementi e la lunghezza
12-
// sono entrambi parti integranti del tipo dell'array. Per default
13-
// gli array vengono inizializzati allo _zero value_, che per gli
14-
// elementi di tipo `int` significa essere inizializzati a `0`.
15-
var a [5]int
16-
fmt.Println("emp:", a)
17-
18-
// Possiamo assegnare un valore ad uno specifico indice utilizzando
19-
// la classica sintassi:
20-
// `array[indice] = valore` , e possiamo ottenere il valore con
21-
// `array[indice]`.
22-
a[4] = 100
23-
fmt.Println("set:", a)
24-
fmt.Println("get:", a[4])
25-
26-
// La funzione builtin `len` ritorna la lunghezza dell'array.
27-
fmt.Println("len:", len(a))
28-
29-
// Utilizza questa sintassi per dichiarare ed inizializzare
30-
// un array nella stessa linea.
31-
b := [5]int{1, 2, 3, 4, 5}
32-
fmt.Println("dcl:", b)
33-
34-
// Gli array sono di base monodimensionali, ma possono essere composti
35-
// per costruire strutture di dati multidimensionali
36-
var twoD [2][3]int
37-
for i := 0; i < 2; i++ {
38-
for j := 0; j < 3; j++ {
39-
twoD[i][j] = i + j
40-
}
41-
}
42-
fmt.Println("2d: ", twoD)
10+
// Qui creaiamo un array chiamato `a` che conterrà esattamente
11+
// 5 elementi di tipo `int`. Il tipo degli elementi e la lunghezza
12+
// sono entrambi parti integranti del tipo dell'array. Per default
13+
// gli array vengono inizializzati allo _zero value_, che per gli
14+
// elementi di tipo `int` significa essere inizializzati a `0`.
15+
var a [5]int
16+
fmt.Println("emp:", a)
17+
18+
// Possiamo assegnare un valore ad uno specifico indice utilizzando
19+
// la classica sintassi:
20+
// `array[indice] = valore` , e possiamo ottenere il valore con
21+
// `array[indice]`.
22+
a[4] = 100
23+
fmt.Println("set:", a)
24+
fmt.Println("get:", a[4])
25+
26+
// La funzione builtin `len` ritorna la lunghezza dell'array.
27+
fmt.Println("len:", len(a))
28+
29+
// Utilizza questa sintassi per dichiarare ed inizializzare
30+
// un array nella stessa linea.
31+
b := [5]int{1, 2, 3, 4, 5}
32+
fmt.Println("dcl:", b)
33+
34+
// Gli array sono di base monodimensionali, ma possono essere composti
35+
// per costruire strutture di dati multidimensionali
36+
var twoD [2][3]int
37+
for i := 0; i < 2; i++ {
38+
for j := 0; j < 3; j++ {
39+
twoD[i][j] = i + j
40+
}
41+
}
42+
fmt.Println("2d: ", twoD)
4343
}

examples/arrays/arrays.hash

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
305975d13d24223181d13f042b290906d86c1a0e
2-
l-A8eBnwio
1+
ad10350067d67bf69efcafd074204dcf8e812cf8
2+
-K1RJBQ8T7

examples/arrays/arrays.sh

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
# Nota che gli array vengono visualizzati nella forma `[v1 v2 v3 ...]`
2-
# se stampati con la funzione `fmt.Println`.
1+
# Nota che gli array vengono visualizzati nella forma
2+
# [v1 v2 v3 ...] se stampati con la funzione
3+
# `fmt.Println`.
34
$ go run arrays.go
45
emp: [0 0 0 0 0]
56
set: [0 0 0 0 100]
@@ -8,5 +9,6 @@ len: 5
89
dcl: [1 2 3 4 5]
910
2d: [[0 1 2] [1 2 3]]
1011

11-
# Noterai che gli _slice_ vengono utilizzati molto più spesso degli
12-
# array in Go. Vedremo gli slices nel prossimo esempio
12+
# Noterai che gli _slice_ vengono utilizzati molto più
13+
# spesso degli array in Go. Vedremo gli slices nel
14+
# prossimo esempio.

examples/constants/constants.go

+20-20
Original file line numberDiff line numberDiff line change
@@ -10,24 +10,24 @@ import "math"
1010
const s string = "constant"
1111

1212
func main() {
13-
fmt.Println(s)
14-
15-
// La keyword `const` può essere utilizzata ovunuque
16-
// la keyword `var` è ammessa
17-
const n = 500000000
18-
19-
// Le espressioni costanti vengono calcolate in aritmetica
20-
// a precisione arbitraria
21-
const d = 3e20 / n
22-
fmt.Println(d)
23-
24-
// Una costante numerica non ha un tipo fin quando non gli
25-
// viene assegnato esplicitamente, ad esempio tramite un cast.
26-
fmt.Println(int64(d))
27-
28-
// Per assegnare un tipo ad una costante di tipo numerico
29-
// si può anche utilizzare la constante in un contesto che richiede
30-
// un tipo, quali un assegnamento od una chiamata di funzione.
31-
// In questo caso `math.Sin` si aspetta un valore di tipo `float64`.
32-
fmt.Println(math.Sin(n))
13+
fmt.Println(s)
14+
15+
// La keyword `const` può essere utilizzata ovunuque
16+
// la keyword `var` è ammessa
17+
const n = 500000000
18+
19+
// Le espressioni costanti vengono calcolate in aritmetica
20+
// a precisione arbitraria
21+
const d = 3e20 / n
22+
fmt.Println(d)
23+
24+
// Una costante numerica non ha un tipo fin quando non gli
25+
// viene assegnato esplicitamente, ad esempio tramite un cast.
26+
fmt.Println(int64(d))
27+
28+
// Per assegnare un tipo ad una costante di tipo numerico
29+
// si può anche utilizzare la constante in un contesto che richiede
30+
// un tipo, quali un assegnamento od una chiamata di funzione.
31+
// In questo caso `math.Sin` si aspetta un valore di tipo `float64`.
32+
fmt.Println(math.Sin(n))
3333
}

examples/constants/constants.hash

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
3de4f16f1ed032378268411b2173b95e8000305d
2-
T5sj0eINnp
1+
28981147447a890a1fe7483a6a1ed9362927fc8a
2+
dNE4cVVj4x

examples/for/for.go

+18-18
Original file line numberDiff line numberDiff line change
@@ -8,24 +8,24 @@ import "fmt"
88

99
func main() {
1010

11-
// Il ciclo più semplice, con una singola condizione.
12-
// (simile al while degli altri linguaggi)
13-
i := 1
14-
for i <= 3 {
15-
fmt.Println(i)
16-
i = i + 1
17-
}
11+
// Il ciclo più semplice, con una singola condizione.
12+
// (simile al while degli altri linguaggi)
13+
i := 1
14+
for i <= 3 {
15+
fmt.Println(i)
16+
i = i + 1
17+
}
1818

19-
// Un classico ciclo `for` inizializzazione/test/incremento.
20-
for j := 7; j <= 9; j++ {
21-
fmt.Println(j)
22-
}
19+
// Un classico ciclo `for` inizializzazione/test/incremento.
20+
for j := 7; j <= 9; j++ {
21+
fmt.Println(j)
22+
}
2323

24-
// Un `for` senza condizioni si ripeterà sempre finché
25-
// non esci dal ciclo con un `break` oppure fai
26-
// un `return` per la funzione che lo racchiude.
27-
for {
28-
fmt.Println("loop")
29-
break
30-
}
24+
// Un `for` senza condizioni si ripeterà sempre finché
25+
// non esci dal ciclo con un `break` oppure fai
26+
// un `return` per la funzione che lo racchiude.
27+
for {
28+
fmt.Println("loop")
29+
break
30+
}
3131
}

examples/for/for.hash

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
e7dbd5f44ea79a3eb41e4535575197b9eadc0e03
2-
mGqqcBZ0jv
1+
d51670c5d3e3a78c63580f36f374a4d00905fa44
2+
G1nXIp3MzQ

examples/functions/functions.go

+11-11
Original file line numberDiff line numberDiff line change
@@ -9,27 +9,27 @@ import "fmt"
99
// di tipo `int` e ritorna la loro somma (sempre di tipo `int`).
1010
func plus(a int, b int) int {
1111

12-
// Go non ritornerà il valore dell'ultima espressione: se
13-
// bisogna ritornare un valore, lo si deve ritornare
14-
// esplicitamente con il comando `return`
15-
return a + b
12+
// Go non ritornerà il valore dell'ultima espressione: se
13+
// bisogna ritornare un valore, lo si deve ritornare
14+
// esplicitamente con il comando `return`
15+
return a + b
1616
}
1717

1818
// Nelle funzioni con parametri multipli dello stesso tipo
1919
// si può omettere il tipo per i parametri consecutivi che
2020
// hanno lo stesso tipo, e indicare il tipo solo per
2121
// l'ultimo parametro.
2222
func plusPlus(a, b, c int) int {
23-
return a + b + c
23+
return a + b + c
2424
}
2525

2626
func main() {
2727

28-
// Puoi chiamare una funzione con la classica
29-
// sintassi `nomefunzione(parametri)`.
30-
res := plus(1, 2)
31-
fmt.Println("1+2 =", res)
28+
// Puoi chiamare una funzione con la classica
29+
// sintassi `nomefunzione(parametri)`.
30+
res := plus(1, 2)
31+
fmt.Println("1+2 =", res)
3232

33-
res = plusPlus(1, 2, 3)
34-
fmt.Println("1+2+3 =", res)
33+
res = plusPlus(1, 2, 3)
34+
fmt.Println("1+2+3 =", res)
3535
}

examples/functions/functions.hash

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
ae669923c20e5ebf4a7b4b11b8fdf2972accf9e2
2-
9Nky-Dn49f
1+
9992bf279fefda377c0146971ef9433084626574
2+
dkBVJR0L1s

examples/functions/functions.sh

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@ $ go run functions.go
33
1+2+3 = 6
44

55
# Go possiede svariate features legate alle funzioni.
6-
# Una di queste è la possibilità di ritornare valori multipli,
7-
# come vedremo nel prossimo esempio.
6+
# Una di queste è la possibilità di ritornare valori
7+
# multipli, come vedremo nel prossimo esempio.

examples/goroutines/goroutines.go

+25-25
Original file line numberDiff line numberDiff line change
@@ -6,33 +6,33 @@ package main
66
import "fmt"
77

88
func f(from string) {
9-
for i := 0; i < 3; i++ {
10-
fmt.Println(from, ":", i)
11-
}
9+
for i := 0; i < 3; i++ {
10+
fmt.Println(from, ":", i)
11+
}
1212
}
1313

1414
func main() {
1515

16-
// Supponiamo di avere una chiamata di funzione `f(s)`.
17-
// Questo è il modo classico di invocarla, che la eseguirà
18-
// in modo sincrono.
19-
f("direct")
20-
21-
// Per invocare questa funzione in una goroutine, utilizza
22-
// `go f(s)`. Questa nuova goroutine eseguirà in parallelo alla
23-
// goroutine dove è stata invocata.
24-
go f("goroutine")
25-
26-
// È possibile far partire una goroutine anche con una funzione anonima.
27-
go func(msg string) {
28-
fmt.Println(msg)
29-
}("going")
30-
31-
// Le nostre due chiamte di funzione stanno eseguendo in modo asincrono,
32-
// su due goroutine separate. La funzione `Scanln` richiede che si prema un tasto,
33-
// prima di far terminare l'esecuzione della goroutine principale
34-
// (che terminerà tutte le altre goroutine).
35-
var input string
36-
fmt.Scanln(&input)
37-
fmt.Println("done")
16+
// Supponiamo di avere una chiamata di funzione `f(s)`.
17+
// Questo è il modo classico di invocarla, che la eseguirà
18+
// in modo sincrono.
19+
f("direct")
20+
21+
// Per invocare questa funzione in una goroutine, utilizza
22+
// `go f(s)`. Questa nuova goroutine eseguirà in parallelo alla
23+
// goroutine dove è stata invocata.
24+
go f("goroutine")
25+
26+
// È possibile far partire una goroutine anche con una funzione anonima.
27+
go func(msg string) {
28+
fmt.Println(msg)
29+
}("going")
30+
31+
// Le nostre due chiamte di funzione stanno eseguendo in modo asincrono,
32+
// su due goroutine separate. La funzione `Scanln` richiede che si prema un tasto,
33+
// prima di far terminare l'esecuzione della goroutine principale
34+
// (che terminerà tutte le altre goroutine).
35+
var input string
36+
fmt.Scanln(&input)
37+
fmt.Println("done")
3838
}

examples/goroutines/goroutines.hash

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
a847131d7f112172f9d5509fd3cf31aefb6d710e
2-
RW_RSAHfj-
1+
d8c7882cb48f91489b474e0a788a0ca97b0fe159
2+
i5lg3HGV9C

examples/goroutines/goroutines.sh

+8-7
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
# Quando si esegue questo programma si può notare prima l'output
2-
# delle chiamate bloccanti. Successivamente si nota come le due
3-
# goroutine lanciate producano dell'output "disordinato".
4-
# Questo disordine riflette l'esecuzione concorrente delle
5-
# goroutine da parte del runtime di Go.
1+
# Quando si esegue questo programma si può notare prima
2+
# l'output delle chiamate bloccanti. Successivamente si
3+
# nota come le due goroutine lanciate producano
4+
# dell'output "disordinato". Questo disordine riflette
5+
# l'esecuzione concorrente delle goroutine da parte del
6+
# runtime di Go.
67
$ go run goroutines.go
78
direct : 0
89
direct : 1
@@ -14,5 +15,5 @@ goroutine : 2
1415
<enter>
1516
done
1617

17-
# Adesso siamo pronti per analizzare la struttura complementare alle
18-
# goroutine in Go: i channel.
18+
# Adesso siamo pronti per analizzare la struttura
19+
# complementare alle goroutine in Go: i channel.

examples/hello-world/hello-world.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@ package main
66
import "fmt"
77

88
func main() {
9-
fmt.Println("hello world")
9+
fmt.Println("hello world")
1010
}

examples/hello-world/hello-world.hash

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
c98395a44701add5bf84e2f3a63e300fc1bc4bfe
2-
2C7wwJ6nxG
1+
ac5d271b330cec751059b00b812a73830d902888
2+
npMQdX5XAE

examples/if-else/if-else.go

+20-20
Original file line numberDiff line numberDiff line change
@@ -7,28 +7,28 @@ import "fmt"
77

88
func main() {
99

10-
// Questo è un esempio base
11-
if 7%2 == 0 {
12-
fmt.Println("7 è pari")
13-
} else {
14-
fmt.Println("7 è dispari")
15-
}
10+
// Questo è un esempio base
11+
if 7%2 == 0 {
12+
fmt.Println("7 è pari")
13+
} else {
14+
fmt.Println("7 è dispari")
15+
}
1616

17-
// È possibile avere un comando `if` senza il ramo `else`
18-
if 8%4 == 0 {
19-
fmt.Println("8 è divisibile per 4")
20-
}
17+
// È possibile avere un comando `if` senza il ramo `else`
18+
if 8%4 == 0 {
19+
fmt.Println("8 è divisibile per 4")
20+
}
2121

22-
// Un comando può precedere il test del comando `if`.
23-
// Qualsiasi variabile dichiarata in questo comando
24-
// è visibile all'interno di tutti i rami del comando `if`
25-
if num := 9; num < 0 {
26-
fmt.Println(num, "è negativo")
27-
} else if num < 10 {
28-
fmt.Println(num, "ha una cifra")
29-
} else {
30-
fmt.Println(num, "ha più di una cifra")
31-
}
22+
// Un comando può precedere il test del comando `if`.
23+
// Qualsiasi variabile dichiarata in questo comando
24+
// è visibile all'interno di tutti i rami del comando `if`
25+
if num := 9; num < 0 {
26+
fmt.Println(num, "è negativo")
27+
} else if num < 10 {
28+
fmt.Println(num, "ha una cifra")
29+
} else {
30+
fmt.Println(num, "ha più di una cifra")
31+
}
3232
}
3333

3434
// Nota che non sono necessarie le parentesi intorno alle condizioni

examples/if-else/if-else.hash

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
89b78f3378e1a574ddfd0260a0404a962852eff8
2-
g-aqMz0Ivf
1+
f3770b68198cdf80f23b4c668ec56a8f8432153b
2+
1ieiuzFwGl

0 commit comments

Comments
 (0)