Пакет strconv
func ParseInt
func ParseInt(s string, base int, bitSize int) (i int64, err error)
ParseInt интерпретирует строку s в заданной базе (от 2 до 36) и возвращает соответствующее значение i. Если base == 0, база подразумевается префиксом строки: база 16 для «0x», база 8 для «0» и база 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