Go в примери: Разбор на числа

Извличането на числа1 от низ е проста, но честа задача в програмирането. Ето как се прави в Го.


  1. parse – извличане (в този случай). В английски ползват една и съща дума както за извличане на съставни стойности като структури от низове така и за неделими стойности като числата.
package main

Стандартният пакет strconv предоставя поддръжка за ивличане на числа от низ.

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

Податката със стойност 64, казва на метода ParseFloat колко бита да задели за точност.

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

Податката със стойност 0 за метода ParseInt му казва „Отгатни бройната система от числото”. 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 с основа 10.

    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

Следващото. което ще разгледаме, е разлагане на метонахождения в уеб на съставните им части.

Следващ пример: .