Sobes.tech
Junior

Ile bajtów zajmuje przechowywanie liczby?

sobes.tech AI

Odpowiedź od AI

Rozmiar przechowywania liczby w Go zależy od jej typu.

Typ danych Rozmiar (bajty) Zakres wartości
int Zależy od architektury (32 lub 64 bity) Zależy od architektury
uint Zależy od architektury (32 lub 64 bity) Zależy od architektury
int8 1 -128 do 127
uint8 1 0 do 255
int16 2 -32768 do 32767
uint16 2 0 do 65535
int32 4 -2147483648 do 2147483647
uint32 4 0 do 4294967295
int64 8 -9223372036854775808 do 9223372036854775807
uint64 8 0 do 18446744073709551615
float32 4 Około ±3.4e38
float64 8 Około ±1.8e308
complex64 8 Dwie wartości float32 (część rzeczywista i urojona)
complex128 16 Dwie wartości float64 (część rzeczywista i urojona)
byte 1 Synonim dla uint8
rune 4 Synonim dla int32 (punkt kodu Unicode)

Przykład określenia rozmiaru typu na konkretnej platformie:

import (
	"fmt"
	"unsafe"
)

func main() {
	// Rozmiar int i uint zależy od architektury procesora
	fmt.Printf("Rozmiar int: %d bajtów\n", unsafe.Sizeof(int(0)))
	fmt.Printf("Rozmiar uint: %d bajtów\n", unsafe.Sizeof(uint(0)))

	// Rozmiary typów stałych są stałe
	fmt.Printf("Rozmiar int8: %d bajtów\n", unsafe.Sizeof(int8(0)))
	fmt.Printf("Rozmiar float64: %d bajtów\n", unsafe.Sizeof(float64(0)))
}