Sobes.tech
Middle

Que se passe-t-il lors de la lecture/écriture dans un canal fermé ? Quelle est la valeur zéro pour une chaîne et une tranche ?

sobes.tech IA

Réponse de l'IA

При чтении из закрытого канала в Go операция чтения возвращает zero value для типа канала и false, что сигнализирует о закрытии канала. Запись в закрытый канал приводит к панике (panic).

Zero value для строки — пустая строка "". Zero value для слайса — nil с длиной и ёмкостью 0.

Пример чтения из закрытого канала:

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

v, ok := <-ch
fmt.Println(v, ok) // Выведет: "" false

Попытка записи:

ch := make(chan string)
close(ch)
ch <- "data" // panic: send on closed channel