Конвертація Тексту в Числа|Number Parsing
#
// Часто нам необхідно конвертувати число з рядкового
// значення у (десяткове або інше) число - і ось як це робити в Go.
package main
// Конвертація з рядків в числа можлива завдяки пакету
// `strconv`.
import (
"fmt"
"strconv"
)
func main() {
// `64` (що ви бачите у функції `ParseFloat`) вказує на те,
// до скількох бітів точності ми будемо конвертувати
// це число, тобто фінальне число буде типу float64
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` зручно використовувати для конвертації
// чисел за основою 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
# Далі ми розглянемо ще один тип роботи з текстом:
# розбір URL на складові.