44 lines
1.4 KiB
Go
44 lines
1.4 KiB
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)
|
||
}
|