Install
1
Run in your terminal$
npx claudepluginhub jamesprial/prial-plugins --plugin golang-workflowTool Access
This skill uses the workspace's default tool permissions.
Skill Content
Slice Zero-Value
Problem
Nil slices are valid and usable, but behavior differs from empty slices.
Pattern
CORRECT - Nil slice works with append
var s []int // nil slice
s = append(s, 1, 2, 3) // OK, creates new backing array
fmt.Println(s) // [1 2 3]
Nil vs Empty Slice
var nilSlice []int // nil slice
emptySlice := []int{} // empty slice (non-nil)
len(nilSlice) == 0 // true
len(emptySlice) == 0 // true
nilSlice == nil // true
emptySlice == nil // false
json.Marshal(nilSlice) // "null"
json.Marshal(emptySlice) // "[]"
When It Matters
// JSON encoding differs
type Response struct {
Items []string // Will encode as null if nil, [] if empty
}
Quick Fix
- Nil slices work with append, len, range
- Use nil for "no data", []T{} for "empty data"
- Check JSON encoding behavior if needed
Similar Skills
Stats
Stars1
Forks0
Last CommitJan 19, 2026