Sobes.tech
Senior

რა ხდება დახურულ არხში კითვისა და წერის დროს?

sobes.tech AI

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

Go-ში, როდესაც მუშაობთ არხებთან:

  • დახურული არხიდან კითხვა: თუ არხი დახურულია და მასში მონაცემები არ არის, კითხვა აბრუნებს არხის ტიპის ნულოვან მნიშვნელობას და false მეორე დაბრუნებულ მნიშვნელობაში (თუ გამოიყენება), რაც მიუთითებს არხის დახურვაზე.

  • დახურული არხზე დაწერა: მცდელობა დაწეროს დახურულ არხზე გამოიწვევს პანიკას (panic). ეს არის შესრულების დროს შეცდომა.

მაგალითი:

ch := make(chan int)
close(ch)

// კითხვა
v, ok := <-ch // ok == false, v == 0

// დაწერა
ch <- 1 // panic: send on closed channel

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