Sobes.tech
Senior

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

sobes.tech AI

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

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

მაგალითი:

var ch chan int // ch == nil

func main() {
    ch <- 1 // მუდმივად ბლოკდება, რადგან არხი nil-ია
}

ეს ქცევა ზოგჯერ გამოიყენება არხების დინამიური ჩართვის/გამორთვისთვის select-ში, რადგან nil-არხთან ოპერაციები არასდროს ხორციელდება და ბლოკავს გორაუტინს.