Number Parsing
#
// Parsear números a partir de strings é algo básico e
// muito comum em muitos softwares; aqui está como fazer em Go.
package main
// O pacote nativo `strconv` fornece algumas funções
// para parsear números.
import (
"fmt"
"strconv"
)
func main() {
// Com `ParseFloat`, o segundo argumento informa à função
// quanto bits de precisão serão utilizados ao parsear.
f, _ := strconv.ParseFloat("1.234", 64)
fmt.Println(f)
// Para o `ParseInt`, o segundo argumento `0`, significa
// em que base está o número a ser parseado. E o terceiro
// argumento `64` requer que o resultado caiba em 64 bits.
i, _ := strconv.ParseInt("123", 0, 64)
fmt.Println(i)
// `ParseInt` reconhecerá números formatados em hexadecimal.
d, _ := strconv.ParseInt("0x1c8", 0, 64)
fmt.Println(d)
// Também está disponível a `ParseUint` para parsear
// inteiros unsigned, sem sinal.
u, _ := strconv.ParseUint("789", 0, 64)
fmt.Println(u)
// `Atoi` é uma função de conveniência para parsear
// `int` em base-10.
k, _ := strconv.Atoi("135")
fmt.Println(k)
// As funções retornam erro em caso de input errado.
_, e := strconv.Atoi("wat")
fmt.Println(e)
}
$ go run number-parsing.go
1.234
123
456
789
135
strconv.ParseInt: parsing "wat": invalid syntax
# Em seguida, será apresentado outra forma comum
# de parseamento: URLs.