Naming Rules #
Choosing good variable names is essential for writing clean and maintainable code.
Go provides flexible rules for naming variables, but following best practices improves code readability.
✅ Basic Naming Rules #
- A variable name must start with a letter (a-z, A-Z) or an underscore (_).
- A variable name cannot start with a digit.
- A variable name can only contain letters, digits, and underscores (a-z, A-Z, 0-9, _).
- Variable names are case-sensitive.
Example:var age int // different from Age or AGE
- There is no limit on the length of the variable name.
- A variable name cannot contain spaces.
- A variable name cannot be any of Go’s reserved keywords
Examples of keywords:
var,func,if,else,return, etc.
✅ Example of Valid and Invalid Names #
| Variable Name | Valid? | Explanation |
|---|---|---|
| age | ✅ | Valid simple name |
| _counter | ✅ | Underscore is allowed at the start |
| 1number | ❌ | Cannot start with a digit |
| my-variable | ❌ | Hyphen is not allowed |
| totalPrice | ✅ | Valid camelCase style |
| return | ❌ | Cannot be a keyword |
✅ Multi-Word Variable Naming Conventions #
When naming variables with multiple words, readability matters a lot. Here are the common conventions:
📚 Camel Case (Most Common in Go) #
- The first word is lowercase, and subsequent words start with an uppercase letter.
var myVariableName = "John"📚 Pascal Case #
- Every word starts with a capital letter.
var MyVariableName = "John"Typically used for exported variables or types.
📚 Snake Case #
- Words are separated by underscores.
var my_variable_name = "John"Less common in Go but still acceptable for readability in some cases.
✅ Best Practices #
Use meaningful names that reflect the purpose of the variable. ✅ Example:
var userAge int var productPrice float64Avoid overly short names unless in small scopes, e.g., loops: ✅ Example:
for i := 0; i < 10; i++ { ... }Consistently use one naming style throughout your project for clarity.
🚀 Follow these naming rules and conventions to make your Go code clean, readable, and maintainable.