Selaa lähdekoodia

6.1 章节 对函数的参数与返回值表述不准确 (#257)

* 对于函数的参数与返回值表述不准确

原表述为:
“所有类型的函数都可以有参数与返回值。函数参数、返回值以及它们的类型被统称为函数签名。”
但是,main()与init()这两函数不允许有参数与返回值,故修改为:
“除了main()、init()函数外,其它所有类型的函数都可以有参数与返回值。函数参数、返回值以及它们的类型被统称为函数签名。”

* 笔误。

* 笔误,重复的chan

* 注释错误
Jingke Tian 9 vuotta sitten
vanhempi
commit
77f672c112
3 muutettua tiedostoa jossa 5 lisäystä ja 5 poistoa
  1. 1 1
      eBook/06.1.md
  2. 1 1
      eBook/14.1.md
  3. 3 3
      eBook/14.2.md

+ 1 - 1
eBook/06.1.md

@@ -16,7 +16,7 @@ Go 里面有三种类型的函数:
 - 匿名函数或者lambda函数(参考 [第 6.8 节](06.8.md))
 - 方法(Methods,参考 [第 10.6 节](10.6.md))
 
-所有类型的函数都可以有参数与返回值。函数参数、返回值以及它们的类型被统称为函数签名。
+除了main()、init()函数外,其它所有类型的函数都可以有参数与返回值。函数参数、返回值以及它们的类型被统称为函数签名。
 
 作为提醒,提前介绍一个语法:
 

+ 1 - 1
eBook/14.1.md

@@ -20,7 +20,7 @@ Go 更倾向于其他的方式,在诸多比较合适的范式中,有个被
 
 当系统调用(比如等待 I/O)阻塞协程时,其他协程会继续在其他线程上工作。协程的设计隐藏了许多线程创建和管理方面的复杂工作。
 
-协程是轻量的,比线程更轻。它们痕迹非常不明显(使用少量的内存和资源):使用 4K 的栈内存就可以在堆中创建它们。因为创建非常廉价,必要的时候可以轻松创建并运行大量的协程(在同一个一个地址空间中 100,000 个连续的协程)。并且它们对栈进行了分割,从而动态的增加(或缩减)内存的使用;栈的管理是自动的,但不是由垃圾回收器管理的,而是在协程退出后自动释放。
+协程是轻量的,比线程更轻。它们痕迹非常不明显(使用少量的内存和资源):使用 4K 的栈内存就可以在堆中创建它们。因为创建非常廉价,必要的时候可以轻松创建并运行大量的协程(在同一个地址空间中 100,000 个连续的协程)。并且它们对栈进行了分割,从而动态的增加(或缩减)内存的使用;栈的管理是自动的,但不是由垃圾回收器管理的,而是在协程退出后自动释放。
 
 协程可以运行在多个操作系统线程之间,也可以运行在线程之内,让你可以很小的内存占用就可以处理大量的任务。由于操作系统线程上的协程时间片,你可以使用少量的操作系统线程就能拥有任意多个提供服务的协程,而且 Go 运行时可以聪明的意识到哪些协程被阻塞了,暂时搁置它们并处理其他协程。
 

+ 3 - 3
eBook/14.2.md

@@ -27,7 +27,7 @@ ch1 = make(chan string)
 
 当然可以更短: `ch1 := make(chan string)`。
 
-这里我们构建一个int通道的通道: `chanOfChans := make(chan chan int)`。
+这里我们构建一个int通道的通道: `chanOfChans := make(chan int)`。
 
 或者函数通道:`funcChan := chan func()`(相关示例请看第 [14.17](14.17.md) 节)。
 
@@ -525,8 +525,8 @@ for {
 通道类型可以用注解来表示它只发送或者只接收:
 
 ```go
-var send_only chan<- int 		// channel can only receive data
-var recv_only <-chan int		// channel can onley send data
+var send_only chan<- int 		// channel can only send data
+var recv_only <-chan int		// channel can onley receive data
 ```
 
 只接收的通道(<-chan T)无法关闭,因为关闭通道是发送者用来表示不再给通道发送值了,所以对只接收通道是没有意义的。通道创建的时候都是双向的,但也可以分配有方向的通道变量,就像以下代码: