Go Control Structures

Fanger Gos klassiske range/break/defer-in-loop faldgruber under kodegennemgang.

Af v0lka · v0lka/skills

Testet · Virker ★ 8.8/10

Go Control Structures — Fanger Gos klassiske range/break/defer-in-loop faldgruber under kodegennemgang.

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 bugs
  • Does this break statement actually exit the loop or just the switch?
  • Check my Go function for classic loop and defer footguns before I ship