Sobes.tech
Junior — Middle

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

sobes.tech AI

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

Go-ში, უკვე დახურული არხის დახურვის მცდელობა იწვევს პანიკას.

არხი შეიძლება დაიხუროს მხოლოდ ერთხელ, რათა ითქვას, რომ მეტი მნიშვნელობა აღარ იქნება გადმოცემული.

თუ განმეორებით გამოიძახეთ close(ch) იგივე არხისთვის, პროგრამა დაუყოვნებლივ შეწყდება შეცდომით.

მაგალითი:

ch := make(chan int)
close(ch)       // სწორია
close(ch)       // panic: close of closed channel

ამიტომ მნიშვნელოვანია კონტროლი, რომ არხი მხოლოდ ერთხელ დაიხუროს.