2026a

# take!


移除并返回指定Channel通道中的第一个可用值

# 语法

take!(c::Channel)

# 说明

移除并返回指定Channel通道中的第一个可用值。 此函数直到可返回值前都将阻塞。

对于无缓冲的通道,在另一个不同的任务调用put!之前,此函数将阻塞。

# 示例

从Channel通道取出数据
chnl2 = Channel{Float64}(10)
put!(chnl2, 2)
take!(chnl2)
2.0

close关闭Channel后,take!可以取通道剩余元素,若通道已空,take!会报错。

close(chnl2)
take!(chnl2)
ERROR: InvalidStateException("Channel is closed.", :closed)
...

# 另请参阅

Channel | put! | close