Sobes.tech
Senior

Yopiq kanalga o'qish va yozish paytida nima bo'ladi?

sobes.tech AI

AIdan javob

Go til ishlashda kanallar bilan:

  • Yopiq kanaldan o‘qish: Kanal yopilgan va unda ma’lumotlar bo‘lmasa, o‘qish operatsiyasi kanalning nol qiymatini va ikkinchi qiymatda false ni qaytaradi (agar ishlatilsa), bu kanal yopilganligini bildiradi.

  • Yopiq kanalda yozish: Yopiq kanalda yozishga urinish panic bilan natijalanadi. Bu bajarilish vaqtidagi xato.

Misol:

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

// O‘qish
v, ok := <-ch // ok == false, v == 0

// Yozish
ch <- 1 // panic: send on closed channel

Shunday qilib, yopiq kanaldan, unda ma’lumot bo‘lsa, xavfsiz o‘qish mumkin, lekin yozib bo‘lmaydi.