closure ਇੱਕ ਫੰਕਸ਼ਨ ਹੈ ਜੋ ਆਪਣੇ ਆਸ-ਪਾਸ ਦੇ ਸਕੋਪ ਤੋਂ ਵੇਰੀਏਬਲਾਂ ਨੂੰ ਹਵਾਲਾ ਦਿੰਦਾ ਹੈ, "ਬੰਦ ਕਰਦਾ ਹੈ" — ਫੰਕਸ਼ਨ ਉਹਨਾਂ ਵੇਰੀਏਬਲਾਂ ਤੱਕ ਪਹੁੰਚ ਬਰਕਰਾਰ ਰੱਖਦਾ ਹੈ ਭਾਵੇਂ enclosing ਫੰਕਸ਼ਨ return ਹੋ ਜਾਵੇ। Go ਫੰਕਸ਼ਨਾਂ ਫਰਸਟ-ਕਲਾਸ ਮੁੱਲ ਹਨ, ਜੋ closures ਨੂੰ ਆਮ ਅਤੇ ਸ਼ਕਤੀਸ਼ਾਲੀ ਟੂਲ ਬਣਾਉਂਦਾ ਹੈ।
ਇੱਕ ਬੁਨਿਆਦੀ closure
{
count :=
{
count++
count
}
}
counter := makeCounter()
fmt.Println(counter())
fmt.Println(counter())
other := makeCounter()
fmt.Println(other())
