[Go] 클로저(Closure)와 루프 변수 캡처 버그 (Feat. Go 1.22)
·
Language/Go
회사에서 에이전트로 개발을 하는데(Obviously.. 요즘 에이전트 없이 개발하는 사람도 있어?) 고루틴을 쓸 때 변수를 캡쳐해서 쓰도록 코드를 짜더라.그 이유가 궁금해서 에이전트랑 대화하다가 배운 내용을 정리하면 좋을 것 같아서 짧게 정리해봤다클로저(Closure)란?클로저는 자신이 정의된 렉시컬 스코프(lexical scope, 다른 말로 정적 스코프(static scope))에 있는 식별자들을 잡아두는 함수클로저는 '값' 아니라 '변수' 자체를 참조. 즉, 같은 변수를 여러 번 갱신하면, 그 변수를 캡처한 모든 클로저는 갱신된 값을 보게 됨package mainimport "fmt"func main() { x := 0 fn := func() { fmt.Println(x) } x = 42..