ஒரு closure என்பது அதன் சுற்றியுள்ள scope-இலிருந்து variables-ஐ குறிப்பிடும் ஒரு function ஆகும், அவற்றை "close over" செய்கிறது — enclosing function திரும்பிய பிறகும்கூட அந்த variables-க்கான அணுகலை function தக்கவைத்துக்கொள்கிறது. Go functions ஆனவை first-class values, இது closures-ஐ ஒரு பொதுவான மற்றும் சக்திவாய்ந்த கருவியாக ஆக்குகிறது.
ஒரு அடிப்படை closure
{
count :=
{
count++
count
}
}
counter := makeCounter()
fmt.Println(counter())
fmt.Println(counter())
other := makeCounter()
fmt.Println(other())
