TGViewer
Golang | Вопросы собесов Golang | Вопросы собесов @easy_golang · 4.68K subscribers
Post #2842 225
🤔 Как закрыть канал?

В Go каналы (chan) можно закрывать с помощью close(channel), чтобы показать, что больше не будет отправляться данных.

Как закрыть канал?
ch := make(chan int)
close(ch) // Закрываем канал


Полный пример
package main

import "fmt"

func main() {
ch := make(chan int)

go func() {
for i := 1; i <= 3; i++ {
ch <- i // Отправляем данные
}
close(ch) // Закрываем канал
}()

for val := range ch { // Читаем пока канал не закроется
fmt.Println(val)
}

fmt.Println("Канал закрыт, чтение завершено")
}


Выход
1
2
3
Канал закрыт, чтение завершено


🚩Как проверить, закрыт ли канал?

Используем val, ok := <-ch:
- ok == true → канал открыт, есть данные.
- ok == false → канал закрыт.
package main

import "fmt"

func main() {
ch := make(chan int)
close(ch)

val, ok := <-ch
fmt.Println("val:", val, "ok:", ok) // val: 0 ok: false
}


Ставь 👍 и забирай 📚 Базу знаний
More from @easy_golang
  1. Oct 11, 2026🤔 Через какой канал возможна проверка работы горутины? В Go для проверки работы горутины…
  2. Oct 10, 2026Post #2845
  3. Oct 10, 2026🤔 Что будет происходить при конкурентной записи в map? Конкурентная запись в обычную map…
  4. Oct 10, 2026Post #2843
  5. Oct 9, 2026Post #2841
  6. Oct 9, 2026🤔 Что такое CI/CD? Это подход к автоматизации сборки, тестирования и развертывания прилож…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →