今天要介紹的是 channel,那麼我們就進入正題吧 ─=≡Σ(((っ゚∀゚)っ
昨天在介紹 goroutine 有提到,當 main goroutine 結束時,其他的 goroutine 也會跟著結束,要怎麼讓 main goroutine 知道其他 goroutine 的狀況,就能夠透過 channel 來進行不同 goroutine 之間的交流以及資訊傳遞。
var ch chan int
// 或是
ch := make(chan int)
channel 具有方向性,因此使用 <-
時需要特別注意箭頭方向。
ch <- v // 把 v 的值塞入 channel
v <- ch // 從 ch 把東西取出,並塞入 v
可以限制定義的 Channel 內的參數數量:
// variable := make(chan Type, Number)
package main
import "fmt"
func main() {
ch := make(chan int, 2)
ch <- 1
ch <- 2
fmt.Println(<-ch)
fmt.Println(<-ch)
}
當沒有任何值可以被傳進 channel 時,可以透過 close
來關閉 channel。
close(ch)
channel 基本語法的介紹就到這邊結束
如果有任何問題歡迎與我告知 :)