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).
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 |
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 |
Special Integer Aliases
| Alias | Actual Type | Use |
|---|---|---|
byte | uint8 | Binary data, bytes |
rune | int32 | Unicode characters |
Default Integer Type
If no type is specified, Go uses int.
- Best for general-purpose integer operations
Integer Operations
Integer Overflow
Go does not automatically warn about overflow.
- Be careful with small integer types.
Type Conversion with Integers
Not allowed:
Allowed:
Checking Integer Type
Best Practices
- Use
intfor most cases - Use
int64for large numbers (DB, timestamps) - Use
uintonly when negative values are impossible - Avoid unnecessary small integer types
Summary
Go supports multiple integer sizes
Signed & unsigned types available
Default integer type is
intNo implicit type conversion
Careful with overflow
