关闭
使用channel内置函数Close(),只能读,不能写,代码如下:
package main
import (
"fmt"
)
func main(){
intChan
:= make(chan int, 3)
intChan
<- 100
intChan
<- 200
close(intChan
)
x
, ok
:= <-intChan
fmt
.Println(x
, ok
)
}
遍历
channel不推荐用for循环,因为长度会变化。用for-range的方式,注意: 1)在遍历时,如果channel没有关闭,则会出现deadlock的错误 2)如果channel已经关闭,遍历完后,就会退出遍历
intChan2
:=make(chan int, 100)
for i
:=0; i
<100; i
++{
intChan2
<- (i
+10)
}
close(intChan2
)
for v
:= range intChan2
{
fmt
.Println("v= ", v
)
}