Пакет 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