Пакет strconv
func ParseInt
func ParseInt(s string, base int, bitSize int) (i int64, err error)
ParseInt інтерпретує рядок s у заданій основі (від 2 до 36) і повертає відповідне значення i. Якщо base == 0, під базою мається на увазі префікс рядка: base 16 для "0x", base 8 для "0", і base 10 в іншому випадку.
Аргумент bitSize визначає цілочисельний тип, до якого повинен вписуватися результат. Розміри бітів 0, 8, 16, 32 та 64 відповідають int, int8, int16, int32 та int64.
Помилки, які повертає ParseInt, мають конкретний тип * NumError і включають err.Num = s. Якщо s порожнє або містить недійсні цифри, err.Err = ErrSyntax; якщо значення, що відповідає s, не може бути представлене цілим числом із зазначеним розміром, err.Err = ErrRange.
ParseIntзавжди повертає int64значення. В залежності від того bitSize, це значення буде вписуватися в int, int8, int16, int32, або int64. Якщо значення не може бути представлене підписаним цілим числом розміру, заданого bitSize, тоді err.Err = ErrRange.
Специфікація мови програмування Go
Числові типи
Значення n-бітового цілого числа має ширину в n бітів і представляється за допомогою арифметики доповнення двох.
int8 the set of all signed 8-bit integers (-128 to 127)
int16 the set of all signed 16-bit integers (-32768 to 32767)
int32 the set of all signed 32-bit integers (-2147483648 to 2147483647)
int64 the set of all signed 64-bit integers (-9223372036854775808 to 9223372036854775807)
Існує також набір заздалегідь оголошених числових типів із конкретними розмірами:
uint either 32 or 64 bits
int same size as uint
intдорівнює 32 або 64 біта, залежно від реалізації. Зазвичай це 32 біти для 32-розрядних компіляторів і 64 біти для 64-розрядних компіляторів.
Щоб дізнатись розмір intабо uint, скористайтесь strconv.IntSize.
Пакет strconv
Константи
const IntSize = intSize
IntSize- це розмір у бітах значення intабо uint.
Наприклад,
package main
import (
"fmt"
"runtime"
"strconv"
)
func main() {
fmt.Println(runtime.Compiler, runtime.GOARCH, runtime.GOOS)
fmt.Println(strconv.IntSize)
}
Вихід:
gc amd64 linux
64