Go Integer Data Types
Go (Golang) – Integer Data Types
Go provides signed and unsigned integer data types with different sizes. Integer types are used to store whole numbers (without decimals).
1️⃣ Signed Integer Types
Signed integers can store positive and negative values.
| Type | Size | Range |
|---|---|---|
int |
32 or 64 bit | Platform dependent |
int8 |
8 bit | −128 to 127 |
int16 |
16 bit | −32,768 to 32,767 |
int32 |
32 bit | −2,147,483,648 to 2,147,483,647 |
int64 |
64 bit | −9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 |
2️⃣ Unsigned Integer Types
Unsigned integers store only non-negative values.
| Type | Size | Range |
|---|---|---|
uint |
32 or 64 bit | Platform dependent |
uint8 |
8 bit | 0 to 255 |
uint16 |
16 bit | 0 to 65,535 |
uint32 |
32 bit | 0 to 4,294,967,295 |
uint64 |
64 bit | 0 to 18,446,744,073,709,551,615 |
3️⃣ Special Integer Aliases
| Alias | Actual Type | Use |
|---|---|---|
byte |
uint8 |
Binary data, bytes |
rune |
int32 |
Unicode characters |
4️⃣ Default Integer Type
If no type is specified, Go uses int.
✔ Best for general-purpose integer operations
5️⃣ Integer Operations
6️⃣ Integer Overflow
Go does not automatically warn about overflow.
⚠ Be careful with small integer types.
7️⃣ Type Conversion with Integers
❌ Not allowed:
✅ Allowed:
8️⃣ Checking Integer Type
9️⃣ Best Practices
✔ Use int for most cases
✔ Use int64 for large numbers (DB, timestamps)
✔ Use uint only when negative values are impossible
✔ Avoid unnecessary small integer types
Summary
-
Go supports multiple integer sizes
-
Signed & unsigned types available
-
Default integer type is
int -
No implicit type conversion
-
Careful with overflow
