Sobes.tech
Junior — Middle

რა მოხდება, თუ ცდილობთ დახუროთ უკვე დახურული არხი?

sobes.tech AI

პასუხი AI-სგან

Go ენის ფარგლებში, უკვე დახურული არხის დახურვის მცდელობა პროგრამის შესრულების დროს პანიკას (panic) გამოიწვევს. ეს დაკავშირებულია იმასთან, რომ close() ფუნქცია განკუთვნილია მხოლოდ ერთჯერადი არხის დახურვისთვის, და განმეორებითი დახურვა ითვლება შეცდომად.

მაგალითი:

ch := make(chan int)
close(ch)      // სწორი დახურვა
close(ch)      // გამოიწვევს panic-ს: close of closed channel

პანიკის თავიდან ასაცილებლად, უნდა უზრუნველყოთ, რომ არხი მხოლოდ ერთხელ დაიხუროს, მაგალითად, დამატებითი ლოგიკის ან სინქრონიზაციის გამოყენებით.