This commit is contained in:
Xargin
2016-09-30 21:56:19 +08:00
parent 25eec00705
commit 853e2ad052
6 changed files with 10 additions and 10 deletions

View File

@@ -8,9 +8,9 @@
ch := make(chan int) // ch has type 'chan int'
```
和map类似channel也一个对应make创建的底层数据结构的引用。当我们复制一个channel或用于函数参数传递时我们只是拷贝了一个channel引用因此调用者被调用者将引用同一个channel对象。和其它的引用类型一样channel的零值也是nil。
和map类似channel也一个对应make创建的底层数据结构的引用。当我们复制一个channel或用于函数参数传递时我们只是拷贝了一个channel引用因此调用者被调用者将引用同一个channel对象。和其它的引用类型一样channel的零值也是nil。
两个相同类型的channel可以使用==运算符比较。如果两个channel引用的是相的对象那么比较的结果为真。一个channel也可以和nil进行比较。
两个相同类型的channel可以使用==运算符比较。如果两个channel引用的是相的对象那么比较的结果为真。一个channel也可以和nil进行比较。
一个channel有发送和接受两个主要操作都是通信行为。一个发送语句将一个值从一个goroutine通过channel发送到另一个执行接收操作的goroutine。发送和接收两个操作都是用`<-`运算符。在发送语句中,`<-`运算符分割channel和要发送的值。在接收语句中`<-`运算符写在channel对象之前。一个不使用接收结果的接收操作也是合法的。
@@ -20,7 +20,7 @@ x = <-ch // a receive expression in an assignment statement
<-ch // a receive statement; result is discarded
```
Channel还支持close操作用于关闭channel随后对基于该channel的任何发送操作都将导致panic异常。对一个已经被close过的channel行接收操作依然可以接受到之前已经成功发送的数据如果channel中已经没有数据的话讲产生一个零值的数据。
Channel还支持close操作用于关闭channel随后对基于该channel的任何发送操作都将导致panic异常。对一个已经被close过的channel行接收操作依然可以接受到之前已经成功发送的数据如果channel中已经没有数据的话讲产生一个零值的数据。
使用内置的close函数就可以关闭一个channel