Sobes.tech
Junior

Hoeveel bytes neemt het opslaan van een getal in beslag?

sobes.tech AI

Antwoord van AI

De opslaggrootte van een getal in Go hangt af van het type.

Gegevenstype Grootte (bytes) Waardenbereik
int Afhankelijk van de architectuur (32 of 64 bits) Afhankelijk van de architectuur
uint Afhankelijk van de architectuur (32 of 64 bits) Afhankelijk van de architectuur
int8 1 -128 tot 127
uint8 1 0 tot 255
int16 2 -32768 tot 32767
uint16 2 0 tot 65535
int32 4 -2147483648 tot 2147483647
uint32 4 0 tot 4294967295
int64 8 -9223372036854775808 tot 9223372036854775807
uint64 8 0 tot 18446744073709551615
float32 4 Ongeveer ±3.4e38
float64 8 Ongeveer ±1.8e308
complex64 8 Twee float32 waarden (reële en imaginaire delen)
complex128 16 Twee float64 waarden (reële en imaginaire delen)
byte 1 Synoniem voor uint8
rune 4 Synoniem voor int32 (Unicode codepunt)

Voorbeeld van het bepalen van de grootte van een type op een specifiek platform:

import (
	"fmt"
	"unsafe"
)

func main() {
	// De grootte van `int` en `uint` hangt af van de architectuur van de processor
	fmt.Printf("Grootte van int: %d bytes\n", unsafe.Sizeof(int(0)))
	fmt.Printf("Grootte van uint: %d bytes\n", unsafe.Sizeof(uint(0)))

	// De groottes van vaste types zijn constant
	fmt.Printf("Grootte van int8: %d bytes\n", unsafe.Sizeof(int8(0)))
	fmt.Printf("Grootte van float64: %d bytes\n", unsafe.Sizeof(float64(0)))
}