Junior — Middle
სად არის კოდის რომელ ნაწილში საჭირო დახუროთ არხი?
sobes.tech AI
პასუხი AI-სგან
Go-ში არხი უნდა დაიხუროს იმ ადგილას, სადაც ის შექმნილია და სადაც აღარ იგეგმება მონაცემების გაგზავნა. ჩვეულებრივ, ამას აკეთებს გამგზავნი, რათა მიუთითოს მიმღებებზე, რომ მეტი მონაცემები აღარ იქნება.
მნიშვნელოვანია:
- მიმღებნი შეუძლიათ წაკითხვის დროს გადაამოწმონ არხის დახურვა.
- მხოლოდ გამგზავნმა უნდა დახუროს არხი, რათა თავიდან აიცილოს პანიკა.
მაგალითი:
ch := make(chan int)
func() {
defer close(ch) // დავხუროთ არხი ყველა მონაცემის გაგზავნის შემდეგ
for i := 0; i < 5; i++ {
ch <- i
}
}()
for val := range ch {
fmt.Println(val) // მონაცემებს ვიღებთ, სანამ არხი არ დაიხურება
}