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