Pacote strconv
func ParseInt
func ParseInt(s string, base int, bitSize int) (i int64, err error)
ParseInt interpreta uma string s na base fornecida (2 a 36) e retorna o valor i correspondente. Se base == 0, a base está implícita no prefixo da string: base 16 para "0x", base 8 para "0" e base 10 caso contrário.
O argumento bitSize especifica o tipo inteiro no qual o resultado deve se ajustar. Os tamanhos de bits 0, 8, 16, 32 e 64 correspondem a int, int8, int16, int32 e int64.
Os erros que ParseInt retorna têm tipo concreto * NumError e incluem err.Num = s. Se s estiver vazio ou contiver dígitos inválidos, err.Err = ErrSyntax; se o valor correspondente a s não puder ser representado por um inteiro com sinal do tamanho fornecido, err.Err = ErrRange.
ParseIntsempre retorna um int64valor. Dependendo bitSize, este valor vai se encaixar int, int8, int16, int32, ou int64. Se o valor não puder ser representado por um inteiro com sinal do tamanho fornecido por bitSize, então err.Err = ErrRange.
A especificação da linguagem de programação Go
Tipos numéricos
O valor de um inteiro de n bits tem largura de n bits e é representado usando aritmética de complemento de dois.
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)
Também há um conjunto de tipos numéricos pré-declarados com tamanhos específicos de implementação:
uint either 32 or 64 bits
int same size as uint
inté de 32 ou 64 bits, dependendo da implementação. Normalmente é de 32 bits para compiladores de 32 bits e 64 bits para compiladores de 64 bits.
Para descobrir o tamanho de um intou uint, use strconv.IntSize.
Pacote strconv
Constantes
const IntSize = intSize
IntSizeé o tamanho em bits de um valor intou uint.
Por exemplo,
package main
import (
"fmt"
"runtime"
"strconv"
)
func main() {
fmt.Println(runtime.Compiler, runtime.GOARCH, runtime.GOOS)
fmt.Println(strconv.IntSize)
}
Resultado:
gc amd64 linux
64