27 lines
1.1 KiB
Go
27 lines
1.1 KiB
Go
// _Каналы_ это способ связи паралелльных горутин между
|
||
// собой. Вы можете послать сообщение в канал из одной
|
||
// горутины и получить его в другой.
|
||
|
||
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)
|
||
}
|