Sobes.tech
Junior

Kolik bajtů zabere uložení čísla?

sobes.tech AI

Odpověď od AI

Velikost uložení čísla v Go závisí na jeho typu.

Typ dat Velikost (byty) Rozsah hodnot
int Závisí na architektuře (32 nebo 64 bitů) Závisí na architektuře
uint Závisí na architektuře (32 nebo 64 bitů) Závisí na architektuře
int8 1 -128 až 127
uint8 1 0 až 255
int16 2 -32768 až 32767
uint16 2 0 až 65535
int32 4 -2147483648 až 2147483647
uint32 4 0 až 4294967295
int64 8 -9223372036854775808 až 9223372036854775807
uint64 8 0 až 18446744073709551615
float32 4 Přibližně ±3.4e38
float64 8 Přibližně ±1.8e308
complex64 8 Dvě hodnoty float32 (reálná a imaginární část)
complex128 16 Dvě hodnoty float64 (reálná a imaginární část)
byte 1 Synonymum pro uint8
rune 4 Synonymum pro int32 (Unicode kódový bod)

Příklad určení velikosti typu na konkrétní platformě:

import (
	"fmt"
	"unsafe"
)

func main() {
	// Velikost `int` a `uint` závisí na architektuře procesoru
	fmt.Printf("Velikost int: %d bajtů\n", unsafe.Sizeof(int(0)))
	fmt.Printf("Velikost uint: %d bajtů\n", unsafe.Sizeof(uint(0)))

	// Velikosti pevných typů jsou konstantní
	fmt.Printf("Velikost int8: %d bajtů\n", unsafe.Sizeof(int8(0)))
	fmt.Printf("Velikost float64: %d bajtů\n", unsafe.Sizeof(float64(0)))
}