Number Parsing

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.