Number Parsing

Конвертація Тексту в Числа|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 на складові.