Junior — Middle
Механизми фаъолияти пӯшида дар барномасозӣ-ро шарҳ диҳед.
sobes.tech AI
Ҷавоб аз AI
Дар програмиравӣ, пӯшида (closure) — ин функсияест, ки "ба ёд меорад" ва метавонад тағйирёбандаҳоро аз муҳити берунаи худ истифода барад, ҳатто агар он функсияи беруна аллакай иҷро шуда бошад.
Дар Go, пӯшидаҳо одатан бо ёрии функсияҳои номаълум (анонимӣ) сохта мешаванд, ки ба тағйирёбандаҳои муҳити атроф дастрасӣ доранд. Ин имкон медиҳад, ки ҳолат байни даъватҳои функсия нигоҳ дошта шавад.
Масалан:
package main
import "fmt"
func ҳисобкунак() func() int {
count := 0
return func() int {
count++
return count
}
}
func main() {
c := ҳисобкунак()
fmt.Println(c()) // 1
fmt.Println(c()) // 2
fmt.Println(c()) // 3
}
Ин ҷо, функсияи ҳисобкунак пӯшидаеро бармегардонад, ки арзиши count-ро меафзояд ва бармегардонад. Тағйирёбандаи count дар байни даъватҳо дар пӯшида нигоҳ дошта мешавад.