| 
             Канали це магістралі для обміну повідомленнями між горутинами,
які виконуються водночас. Ми можете надсилати
дані до каналу в однієї горутини та отримувати у іншій. 
           | 
          
            
          
           | 
        
        
        
          | 
            
           | 
          
              
          package main 
           | 
        
        
        
          | 
            
           | 
          
            
          import "fmt" 
           | 
        
        
        
          | 
            
           | 
          
            
          func main() { 
           | 
        
        
        
          | 
             Канали створюються наступним синтаксисом make(chan тип-каналу) де
тип-каналу визначає значення якого типу можуть бути по ньому передані. 
           | 
          
            
              messages := make(chan string) 
           | 
        
        
        
          | 
             Надіслати значення до каналу можна використовуючи наступний
channel <- синтаксис. Використовуючи анонімну горутину,
ми надішлемо значення ping до каналу messages. 
           | 
          
            
              go func() { messages <- "ping" }() 
           | 
        
        
        
          | 
             Наступний синтаксис <-channel описує отримання значення з каналу.
Так ми отримуємо і друкуємо повідомлення ping, яке прийшло каналом
messages з анонімної горутини. 
           | 
          
            
              msg := <-messages
    fmt.Println(msg)
} 
           |