Channel {25/100}

Channel adalah pipa yang menghubungkan goroutine satu dengan goroutine lainnya, kita bisa mengirim value ke channel dari satu goroutine dan diterima oleh goroutine lain.

Untuk membuat channel kita menggunakan make

nama_channel := make(chan tipe_channel)

Berikut contoh sederhana penerapan channel

package main
import (
"fmt"
)
func main() {
messages := make(chan string)
    go func() {
messages <- "ping"
}()
    msg := <-messages
fmt.Println(msg)
}

Untuk mengirim value ke channel kita menggunakan nama_channel <-, kalau kita lihat contoh diatas kita mengirim value “ping” ke channel kita (messages)

messages <- "ping"

Kemudian untuk mengirim value yang ada di channel ke target lain kita menggunakan sintaks <-nama_channel

msg := <-messages

Dari contoh program kita diatas kita mengirim value “ping” yang sudah ada di channel messages ke variable msg.