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