Parsing di Numeri
#
// Effettuare il parsing da una stringa ad un numero
// è un task tanto semplice quanto comune in molti programmi.
// Vedremo adesso come effettuare il parsing dei numeri in Go.
package main
// Il pacchetto `strconv` della standard library offre
// le funzioni necessarie al parsing
import "strconv"
import "fmt"
func main() {
// Tramite la funzione `ParseFloat` è possibile indicare il
// numero di bit della precisione da utilizzare (in questo
// caso 64).
f, _ := strconv.ParseFloat("1.234", 64)
fmt.Println(f)
// Tramite la funzione `ParseInt` è possibile indicare la
// base da utilizzare per il parsing, tramite il secondo
// parametro. Il valore `0` sta ad indicare che la base
// deve essere inferita automaticamente dalla stringa.
// Il parametro `64` richiede che il risultato sia
// rappresentabile con 64 bit.
i, _ := strconv.ParseInt("123", 0, 64)
fmt.Println(i)
// La funzione `ParseInt` riconosce anche i numeri esadecimali
d, _ := strconv.ParseInt("0x1c8", 0, 64)
fmt.Println(d)
// È disponibile anche la funzione `ParseUint`
u, _ := strconv.ParseUint("789", 0, 64)
fmt.Println(u)
// La funzione `Atoi` è una funzione di convenienza per
// convertire da numeri in base 10 a `int`
k, _ := strconv.Atoi("135")
fmt.Println(k)
// Le funzioni di parsing possono restituire un errore
_, e := strconv.Atoi("wat")
fmt.Println(e)
}
$ go run number-parsing.go
1.234
123
456
789
135
strconv.ParseInt: parsing "wat": invalid syntax
# Vedremo ora un'altro caso di parsing molto
# comune: gli URL.