A closure అనేది దాని చుట్టుపక్కల స్కోప్ నుండి వేరియబుల్లను సూచించే ఫంక్షన్, "closing over" — ఆ ఫంక్షన్ వాటిపై యాక్సెస్ను ఎన్క్లోజింగ్ ఫంక్షన్ రిటర్న్ చేసిన తర్వాత కూడా నిలుపుకుంటుంది. Go ఫంక్షన్లు first-class values, closures ను సాధారణ మరియు శక్తిశాली సాధనగా చేస్తాయి.
A basic closure
{
count :=
{
count++
count
}
}
counter := makeCounter()
fmt.Println(counter())
fmt.Println(counter())
other := makeCounter()
fmt.Println(other())
