Junior
Kiek baitų užima skaičiaus saugojimas?
sobes.tech AI
Atsakymas iš AI
Skaičiaus saugojimo dydis Go priklauso nuo jo tipo.
| Duomenų tipas | Dydis (baitai) | Reikšmių diapazonas |
|---|---|---|
int |
Priklauso nuo architektūros (32 arba 64 bitų) | Priklauso nuo architektūros |
uint |
Priklauso nuo architektūros (32 arba 64 bitų) | Priklauso nuo architektūros |
int8 |
1 | -128 iki 127 |
uint8 |
1 | 0 iki 255 |
int16 |
2 | -32768 iki 32767 |
uint16 |
2 | 0 iki 65535 |
int32 |
4 | -2147483648 iki 2147483647 |
uint32 |
4 | 0 iki 4294967295 |
int64 |
8 | -9223372036854775808 iki 9223372036854775807 |
uint64 |
8 | 0 iki 18446744073709551615 |
float32 |
4 | Apie ±3.4e38 |
float64 |
8 | Apie ±1.8e308 |
complex64 |
8 | Du float32 reikšmės (reali ir įsivaizduojama dalys) |
complex128 |
16 | Dvi float64 reikšmės (reali ir įsivaizduojama dalys) |
byte |
1 | Sinonimas uint8 |
rune |
4 | Sinonimas int32 (Unicode kodo taškas) |
Pavyzdys, kaip nustatyti tipo dydį konkrečioje platformoje:
import (
"fmt"
"unsafe"
)
func main() {
// `int` ir `uint` dydis priklauso nuo procesoriaus architektūros
fmt.Printf("`int` dydis: %d baitų\n", unsafe.Sizeof(int(0)))
fmt.Printf("`uint` dydis: %d baitų\n", unsafe.Sizeof(uint(0)))
// Fiksuotų tipų dydžiai yra pastovūs
fmt.Printf("`int8` dydis: %d baitų\n", unsafe.Sizeof(int8(0)))
fmt.Printf("`float64` dydis: %d baitų\n", unsafe.Sizeof(float64(0)))
}