Notes
Go Receiver Pointers vs. Values
When writing a method in Go, should you use a pointer or a value receiver?
Type | Use |
---|---|
Basic | Value |
Map | Value |
Func | Value |
Chan | Value |
Slice (no reslicing/reallocating) | Value |
Small Struct/Array | Value |
Concurrent mutations | Value if possible |
Is Mutated By Method | Pointer |
Large Struct/Array | Pointer |
Contains a sync.Mutex |
Pointer |
Contains Pointers | Pointer |
🤷 | Pointer |
Distilled from Golang Code Review Comments