Go Em Exemplos: 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.

Próximo exemplo: URL Parsing.