Go Control Structures
Fanger Gos klassiske range/break/defer-in-loop faldgruber under kodegennemgang.
Testet · Virker
Hvad det gør
En reference-tjekliste for fire tilbagevendende Go kontrol-flow-fejl: mutering af range loop-kopier i stedet for originalen, lagring af en pointer til range-variablen (alle poster ender med at pege på det sidste element), break, der kun afslutter den inderste switch/select i stedet for løkken, og defer inde i en løkke, der ikke udløses, før funktionen returnerer. Udløses ved skrivning eller gennemgang af Go-kode, der itererer over slices/arrays/maps/channels, bruger break inde i switch/select indlejret i en løkke, eller placerer defer inde i en løkkekrop.
Testrapport
Gennemgik en 3-fejls Go-fil (range-pointer trap, defer-in-loop leak, break-only-exits-switch) både med og uden skillen: begge gennemgange fangede alle 3 fejl, men den skill-guidede gennemgang navngav hver faldgrube efter dens kanoniske kategori og bekræftede eksplicit fraværet af de to andre regelkategorier (range-copy mutation, map-iteration hazards) — en tjekliste-stil fuldstændighedsgaranti, som den frie baseline-gennemgang ikke tilbød.
Testet: 2026-07-16 · Claude Code 2.x (agent harness)
Installation
git clone https://github.com/v0lka/skills mkdir -p ~/.claude/skills cp -r skills/development/idiomatic-go/go-control-structures ~/.claude/skills/go-control-structures
Kommandoer og eksempelprompter
/go-control-structuresFanger Gos klassiske range/break/defer-in-loop faldgruber under kodegennemgang.
Skills udløses af almindelige forespørgsler — ingen kommandoer at huske. Efter installationen aktiverer prompter som disse skillen (på engelsk):
Review this Go code for range-variable capture and defer-in-loop bugsDoes this break statement actually exit the loop or just the switch?Check my Go function for classic loop and defer footguns before I ship