Channel - Direction

Pada sesi ini akan dibahas bahwa kita bisa menetapkan suatu fungsi sebagai pengirim saja, penerima saja, atau keduanya

Kita bisa menentukan level akses channel apakah hanya sebagai penerima, pengirim, atau penerima sekaligus pengirim. Konsep ini disebut dengan channel direction.

Cara pemberian level akses adalah dengan menambahkan tanda <- sebelum atau setelah keyword chan. Untuk lebih jelasnya bisa dilihat pada tabel berikut.

Sintaks

Penjelasan

ch chan string

Parameter ch bisa digunakan untuk mengirim dan menerima data

ch chan<- string

Parameter ch hanya bisa digunakan untuk mengirim data

ch <-chan string

Parameter ch hanya bisa digunakan untuk menerima data

package main

import (
	"fmt"
)

func sender(c chan<- string) {
	c <- "Ping"
}

func receiver(c <-chan string) {
	msg := <-c
	fmt.Println(msg)
}

func main() {
	ch := make(chan string)
	go sender(ch)
	go receiver(ch)

	var input string
	fmt.Scanln(&input)
}

Last updated