Sobes.tech
Junior

Колко байта заема съхранението на число?

sobes.tech AI

Отговор от AI

Размерът на съхранението на число в Go зависи от неговия тип.

Тип данни Размер (байтове) Диапазон на стойностите
int Зависи от архитектурата (32 или 64 бита) Зависи от архитектурата
uint Зависи от архитектурата (32 или 64 бита) Зависи от архитектурата
int8 1 -128 до 127
uint8 1 0 до 255
int16 2 -32768 до 32767
uint16 2 0 до 65535
int32 4 -2147483648 до 2147483647
uint32 4 0 до 4294967295
int64 8 -9223372036854775808 до 9223372036854775807
uint64 8 0 до 18446744073709551615
float32 4 Около ±3.4e38
float64 8 Около ±1.8e308
complex64 8 Два стойности float32 (действителна и мнима част)
complex128 16 Два стойности float64 (действителна и мнима част)
byte 1 Синоним за uint8
rune 4 Синоним за int32 (Unicode кодова точка)

Пример за определяне на размера на тип на конкретна платформа:

import (
	"fmt"
	"unsafe"
)

func main() {
	// Размерът на `int` и `uint` зависи от архитектурата на процесора
	fmt.Printf("Размер на int: %d байта\n", unsafe.Sizeof(int(0)))
	fmt.Printf("Размер на uint: %d байта\n", unsafe.Sizeof(uint(0)))

	// Размерите на фиксираните типове са постоянни
	fmt.Printf("Размер на int8: %d байта\n", unsafe.Sizeof(int8(0)))
	fmt.Printf("Размер на float64: %d байта\n", unsafe.Sizeof(float64(0)))
}