Go на примерах: Парсинг чисел

Парсинг чисел из строк — базовая, но распространённая задача во многих программах; вот как это сделать в Go.

package main

Встроенный пакет strconv обеспечивает парсинг чисел.

import (
    "fmt"
    "strconv"
)
func main() {

В ParseFloat число 64 указывает, сколько бит точности использовать при парсинге.

    f, _ := strconv.ParseFloat("1.234", 64)
    fmt.Println(f)

Для ParseInt 0 означает определить основание из строки. 64 требует, чтобы результат помещался в 64 бита.

    i, _ := strconv.ParseInt("123", 0, 64)
    fmt.Println(i)

ParseInt распознаёт числа в шестнадцатеричном формате.

    d, _ := strconv.ParseInt("0x1c8", 0, 64)
    fmt.Println(d)

Также доступен ParseUint.

    u, _ := strconv.ParseUint("789", 0, 64)
    fmt.Println(u)

Atoi — удобная функция для базового парсинга десятичных int.

    k, _ := strconv.Atoi("135")
    fmt.Println(k)

Функции парсинга возвращают ошибку при некорректном вводе.

    _, e := strconv.Atoi("wat")
    fmt.Println(e)
}
$ go run number-parsing.go 
1.234
123
456
789
135
strconv.ParseInt: parsing "wat": invalid syntax

Далее рассмотрим другую распространённую задачу парсинга: URL.

Далее: .