closure არის ფუნქცია, რომელიც მიმართავს ცვლადებს მის გარშემო არსებული ფარგლებიდან, "დახურებს" მათ — ფუნქცია ინარჩუნებს წვდომას ამ ცვლადებზე თუნდაც მის გარსე ფუნქცია დასრულდეს. Go ფუნქციები არიან first-class values, რაც ხდის closure-ებს გავრცელებულ და ძლიერ ხელსაწყოს.
ელემენტარული closure
{
count :=
{
count++
count
}
}
counter := makeCounter()
fmt.Println(counter())
fmt.Println(counter())
other := makeCounter()
fmt.Println(other())
