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)))
}