Pakiet strconv
func ParseInt
func ParseInt(s string, base int, bitSize int) (i int64, err error)
ParseInt interpretuje ciąg s w danej bazie (od 2 do 36) i zwraca odpowiednią wartość i. Jeśli podstawa == 0, podstawa jest implikowana przez prefiks ciągu: podstawa 16 dla „0x”, podstawa 8 dla „0”, a podstawa 10 w innym przypadku.
Argument bitSize określa typ liczby całkowitej, do której musi pasować wynik. Rozmiary bitów 0, 8, 16, 32 i 64 odpowiadają int, int8, int16, int32 i int64.
Błędy zwracane przez ParseInt mają konkretny typ * NumError i zawierają err.Num = s. Jeśli s jest puste lub zawiera nieprawidłowe cyfry, err.Err = ErrSyntax; jeśli wartość odpowiadająca s nie może być reprezentowana przez liczbę całkowitą ze znakiem podanego rozmiaru, err.Err = ErrRange.
ParseInt
zawsze zwraca int64
wartość. W zależności od bitSize
tej wartości będzie pasować do int
, int8
, int16
, int32
, lub int64
. Jeśli wartość nie może być reprezentowana przez liczbę całkowitą ze znakiem o rozmiarze podanym przez bitSize
, to err.Err = ErrRange
.
Specyfikacja języka programowania Go
Typy liczbowe
Wartość n-bitowej liczby całkowitej ma szerokość n bitów i jest reprezentowana za pomocą arytmetyki uzupełnień do dwóch.
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)
Istnieje również zestaw wstępnie zadeklarowanych typów liczbowych o rozmiarach właściwych dla implementacji:
uint either 32 or 64 bits
int same size as uint
int
jest 32- lub 64-bitowy, w zależności od implementacji. Zwykle jest to 32 bity dla kompilatorów 32-bitowych i 64 bity dla kompilatorów 64-bitowych.
Aby sprawdzić rozmiar int
lub uint
, użyj strconv.IntSize
.
Pakiet strconv
Stałe
const IntSize = intSize
IntSize
to rozmiar w bitach wartości int
lub uint
.
Na przykład,
package main
import (
"fmt"
"runtime"
"strconv"
)
func main() {
fmt.Println(runtime.Compiler, runtime.GOARCH, runtime.GOOS)
fmt.Println(strconv.IntSize)
}
Wynik:
gc amd64 linux
64