Questions — Go Topic¶
Log questions as they arise — don't wait until you understand them fully. A question written down is a learning opportunity captured. For module-specific questions, use the QUESTIONS.md inside the relevant module folder.
How to Use This File¶
- Write the question the moment it occurs to you, even if you can't articulate it well yet.
- Come back and refine the question once you understand it better.
- Update the status as you research or find answers.
- Link to the source where you found the answer.
- Capture follow-up questions — good answers always raise new ones.
Status Legend¶
| Symbol | Meaning |
|---|---|
| 🔴 | Unanswered — needs active research |
| 🟡 | Partial — have some understanding, still incomplete |
| 🟢 | Answered — well understood, could explain to someone else |
| ⏸ | Deferred — not urgent, revisit in a later module |
Questions¶
Add questions below as they arise. Keep them numbered sequentially.
1. 🔴 What is a mutex?¶
Asked: 2026-06-01
What is a mutex in Go? When and why would I use one?
Reference snippet:
var userLocks sync.Map
func lockFor(userID int) *sync.Mutex {
mu, _ := userLocks.LoadOrStore(userID, &sync.Mutex{})
return mu.(*sync.Mutex)
}
2. 🔴 What is defer?¶
Asked: 2026-06-01
What does the defer keyword do in Go? When does it run, and what are common use cases?
3. 🔴 How do pointers work? (ELI5 for Python devs)¶
Asked: 2026-06-01
How do pointers work in Go? Explain like I'm 5, using terms and mental models familiar to Python developers.
Reference snippet — note &sync.Mutex{} (get address of), *sync.Mutex (pointer type), and mu.(*sync.Mutex) (type assertion to extract the pointer):
var userLocks sync.Map
func lockFor(userID int) *sync.Mutex {
mu, _ := userLocks.LoadOrStore(userID, &sync.Mutex{})
return mu.(*sync.Mutex)
}
Resolved Questions Archive¶
Move fully answered 🟢 questions here to keep the active list clean.
(none yet)
Question Stats¶
| Status | Count |
|---|---|
| 🔴 Unanswered | 3 |
| 🟡 Partial | 0 |
| 🟢 Answered | 0 |
| ⏸ Deferred | 0 |
| Total | 3 |