একটি closure হল এমন একটি ফাংশন যা তার চারপাশের স্কোপ থেকে ভেরিয়েবল রেফারেন্স করে, সেগুলোকে "বন্ধ করে"। ফাংশনটি এনক্লোজিং ফাংশন রিটার্ন করার পরেও সেই ভেরিয়েবলগুলোতে অ্যাক্সেস বজায় রাখে। Go ফাংশনগুলো first-class values, যা closures কে একটি সাধারণ এবং শক্তিশালী টুল করে তোলে।
একটি মৌলিক closure
{
count :=
{
count++
count
}
}
counter := makeCounter()
fmt.Println(counter())
fmt.Println(counter())
other := makeCounter()
fmt.Println(other())
