एक closure एक फंक्शन है जो अपने आसपास के स्कोप से वेरिएबल्स का संदर्भ देता है, उन्हें "बंद" करते हुए — फंक्शन उन वेरिएबल्स तक पहुंच बनाए रखता है यहां तक कि एनक्लोजिंग फंक्शन के रिटर्न के बाद भी। Go फंक्शन्स फर्स्ट-क्लास वैल्यूज हैं, जो closures को एक आम और शक्तिशाली उपकरण बनाता है।
एक बेसिक closure
{
count :=
{
count++
count
}
}
counter := makeCounter()
fmt.Println(counter())
fmt.Println(counter())
other := makeCounter()
fmt.Println(other())
