// _Каналы_ это способ связи паралелльных горутин между // собой. Вы можете послать сообщение в канал из одной // горутины и получить его в другой. package main import "fmt" func main() { // Создаем новый канал - `make(chan val-type)`. // Каналы типизируются в зависимости от значений, // которые они передают. messages := make(chan string) // _Отправьте_ значение в канал, используя `channel <-`. // Здесь мы отправляем `"ping"` в канал `messages`, // который мы сделали выше, из новой горутины. go func() { messages <- "ping" }() // Синтаксис `<-channel` _читает_ из канала. Здесь // мы получим сообщение `"ping"`, которое мы // отправили выше, и распечатаем его. msg := <-messages fmt.Println(msg) }