CodeFun Go

通道

Channel 是 Go 中的一种数据类型,它提供 goroutine 之间的同步和通信。你可以从一个协程将值发送到通道,然后在另一个协程中接收。

使用 make(chan val-type) 创建一个新的通道。 通道的数据类型就是他们需要传递值的类型。

ch := make(chan int)

你可以通过它用信道操作符 <- 来发送或者接收数据。

ch <- val    // 将 val 发送至信道 ch。
val := <-ch  // 从 ch 接收值并赋予 val。

默认发送和接收操作是阻塞的,直到发送方和接收方都就绪。

package main

import (
	"fmt"
)

func main() {
	msg := make(chan string)
	go func() { 
		msg <- "login"
	}()

	newMsg := <-msg
    fmt.Println(newMsg)
}
login