Golang Channel Và Cách Sử Dụng.

Channel trong Golang được hiểu đơn giản là một ống dẫn mà có thể truyền hoặc nhận giá trị, cú pháp thông qua. <- Cú Pháp Để tạo ra một channel: chan := make(chan int) chan là channel có kiểu là int, sau này chúng ta có thể khai báo nhiều loại type cho channel

Channel trong Golang được hiểu đơn giản là một ống dẫn mà có thể truyền hoặc nhận giá trị, cú pháp thông qua.

<-


Cú Pháp

  • Để tạo ra một channel:
chan := make(chan int)

chan là channel có kiểu là int, sau này chúng ta có thể khai báo nhiều loại type cho channel tuỳ vào mục đích sử dụng, ví dụ như string, struct,…

  • Gửi giá trị đến channel chan:
ch <- sendvalue

giá trị sendvalue có kiểu là type int được gửi để chan

  • Nhận giá trị từ channel chan:
receivevalue := <-chan

sau khi nhận giá trị kiểu int từ sendvalue

** Ví Dụ.**

  1. Ví dụ 1 là dùng channel để nhận value từ một function đơn giản.
package main

import "fmt"

func exChannel(ch chan int) {
	sendvalue := 5
	ch <- sendvalue
}

func main() {
	ch := make(chan int)
	go exChannel(ch)
	receice := <-ch
	fmt.Println(receice)
}

kết quả là:

5

RUN

  1. Ví dụ 2 này sẽ nhận nhiều giá trị từ 1 function khác.
package main

import (
	"fmt"
	"time"
)

func main() {
	stop := make(chan bool)
	ch := make(chan int)
	go exChannelArray(ch, stop)
	for {
		select {
		case receice := <-ch:
			fmt.Println(receice)
		case <-stop:
			return
		}
	}
}

func exChannelArray(ch chan int, stop chan bool) {
	for i := 0; i < 9; i++ {
		ch <- i
	}
	time.Sleep(time.Second)
	stop <- true
}

Kết quả:

receice: 0
receice: 1
receice: 2
receice: 3
receice: 4
receice: 5
receice: 6
receice: 7
receice: 8

Run

Trong ví dụ trên có phần for select nếu không hiểu thì comment mình sẽ giải thích nhé.

for {
		select {
		case receice := <-ch:
			fmt.Println(receice)
		case <-stop:
			return
		}
	}

Cảm ơn các bạn đã đọc, các bạn có thể yêu cầu thêm về các chủ đề khác trong golang nhé.

Nguồn: viblo.asia

Bài viết liên quan

9 Mẹo lập trình Web “ẩn mình” giúp tiết kiệm hàng giờ đồng hồ

Hầu hết các lập trình viên (kể cả những người giỏi) đều tốn thời gian x

Can GPT-4o Generate Images? All You Need to Know about GPT-4o-image

OpenAI‘s GPT-4o, introduced on March 25, 2025, has revolutionized the way we create visual con

Khi nào nên dùng main, section, article, header, footer, và aside trong HTML5

HTML5 đã giới thiệu các thẻ ngữ nghĩa giúp cấu trúc nội dung web một cách có

So sánh Webhook và API: Khi nào nên sử dụng?

Trong lĩnh vực công nghệ thông tin và phát triển phần mềm, Webhook và API là hai th