Merge pull request #131 from yinsigan/master

这里应该有逗号
This commit is contained in:
astaxie
2012-12-14 06:10:28 -08:00
2 changed files with 3 additions and 1 deletions

2
2.2.md
View File

@@ -104,7 +104,9 @@ Go对于已声明但未使用的变量会在编译阶段报错比如下面的
>如下的代码会产生错误
>
>> var a int8
>> var b int32
>> c:=a + b
>
>另外尽管int的长度是32 bit, 但int 与 int32并不可以互用。

2
2.7.md
View File

@@ -80,7 +80,7 @@ channel通过操作符`<-`来接收和发送数据
fmt.Println(x, y, x + y)
}
默认情况下channel接收和发送数据都是阻塞的除非另一端已经准备好这样就使得Goroutines同步变的更加的简单而不需要显式的lock。所谓阻塞也就是如果读取value := <-ch它将会被阻塞直到有数据接收。其次任何发送ch<-5将会被阻塞直到数据被读出。无缓冲channel 是在多个goroutine之间同步很棒的工具。
默认情况下channel接收和发送数据都是阻塞的除非另一端已经准备好这样就使得Goroutines同步变的更加的简单而不需要显式的lock。所谓阻塞也就是如果读取value := <-ch它将会被阻塞直到有数据接收。其次任何发送ch<-5将会被阻塞直到数据被读出。无缓冲channel 是在多个goroutine之间同步很棒的工具。
## Buffered Channels
上面我们介绍了默认的非缓存类型的channel不过Go也允许指定channel的缓冲大小很简单就是channel可以存储多少元素。ch:= make(chan bool, 4)创建了可以存储4个元素的bool 型channel。在这个channel 中前4个元素可以无阻塞的写入。当写入第5个元素时代码将会阻塞直到其他goroutine从channel 中读取一些元素,腾出空间。