代码点读机 / Go / <-

<- Go · 运算符

通道发送/接收运算符:ch <- v 表示把值 v 发送到通道 ch,v := <-ch 表示从通道接收一个值。

怎么用

ch <- 值 发送;<-ch 或 v := <-ch 接收

小例子

package main
import "fmt"

func main() {
    ch := make(chan int, 1)
    ch <- 1
    v := <-ch
    fmt.Println(v)
}

运行结果

输出 1

提醒:箭头指向通道表示发送,离开通道表示接收;无缓冲通道的发送和接收会互相阻塞

官方文档:https://go.dev/ref/spec#Send_statements

在代码里遇到不认识的词?打开代码点读机,点一下就懂 → ← Go全部词条