Sobes.tech
Junior — Middle

რა მოხდება, თუ გსურთ წერა ცარიელ (nil) არხზე Go ენაში?

sobes.tech AI

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

Go-ში, თუ სცადეთ მნიშვნელობის დაწერა nil-კანალში, პროგრამა სამუდამოდ გაჩერდება (deadlock). ეს ხდება იმიტომ, რომ nil-კანალი არ არის ინიციალიზებული და ვერ იღებს ან აგზავნის მნიშვნელობებს.

მაგალითი:

var ch chan int // ch == nil

func main() {
    ch <- 1 // აქ პროგრამა გაჩერდება
}

გადარჩენის მიზნით, უნდა ინიციალიზდეს make-ის გამოყენებით, მაგალითად:

ch := make(chan int)

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