From cfa1f029356e8ea37d06522aa2903cca9eefcd6d Mon Sep 17 00:00:00 2001 From: dake Date: Tue, 27 Oct 2015 22:43:21 +0800 Subject: [PATCH] =?UTF-8?q?=E9=94=99=E5=88=AB=E5=AD=97=E7=BA=A0=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- eBook/11.8.md | 4 ++-- eBook/11.9.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eBook/11.8.md b/eBook/11.8.md index 92e116d..85e8d33 100644 --- a/eBook/11.8.md +++ b/eBook/11.8.md @@ -1,6 +1,6 @@ # 11.8 第二个例子:读和写 -读和写是软件中很普遍的行为,提起它们会立即想到读写文件、缓存(比如字节或字符串切片)、标准输入输出、标准错误以及网络连接、管道等等,或者读写我们的自定义类型。为了是代码尽可能通用,Go 采取了一致的方式来读写数据。 +读和写是软件中很普遍的行为,提起它们会立即想到读写文件、缓存(比如字节或字符串切片)、标准输入输出、标准错误以及网络连接、管道等等,或者读写我们的自定义类型。为了让代码尽可能通用,Go 采取了一致的方式来读写数据。 `io` 包提供了用于读和写的接口 `io.Reader` 和 `io.Writer`: @@ -16,7 +16,7 @@ type Writer interface { 只要类型实现了读写接口,提供 `Read()` 和 `Write` 方法,就可以从它读取数据,或向它写入数据。一个对象要是可读的,它必须实现 `io.Reader` 接口,这个接口只有一个签名是 `Read(p []byte) (n int, err error)` 的方法,它从调用它的对象上读取数据,并把读到的数据放入参数中的字节切片中,然后返回读取的字节数和一个 `error` 对象,如果没有错误发生返回 'nil',如果已经到达输入的尾端,会返回 `io.EOF("EOF")`,如果读取的过程中发生了错误,就会返回具体的错误信息。类似地,一个对象要是可写的,它必须实现 `io.Writer` 接口,这个接口也只有一个签名是 `Write(p []byte) (n int, err error)` 的方法,它将指定字节切片中的数据写入调用它的对象里,然后返回实际写入的字节数一个 `error` 对象(如果没有错误发生就是 `nil`)。 -`io` 包里的 `Readers` 和 `Writers` 都是不带缓冲的,`bufio` 包里提供了对应的带缓冲的操作,在读写 `UTF-8` 编码的文本文件时它们尤其有用。在 第12章 我们会看在实战使用它们的很多例子。 +`io` 包里的 `Readers` 和 `Writers` 都是不带缓冲的,`bufio` 包里提供了对应的带缓冲的操作,在读写 `UTF-8` 编码的文本文件时它们尤其有用。在 第12章 我们会看到很多在实战使用它们的例子。 在实际编程中尽可能的使用这些接口,会使程序变得更通用,可以在任何实现了这些接口的类型上使用读写方法。 diff --git a/eBook/11.9.md b/eBook/11.9.md index 9ebcf3a..e208d59 100644 --- a/eBook/11.9.md +++ b/eBook/11.9.md @@ -209,7 +209,7 @@ func main() { ## 11.9.5 接口到接口 -一个接口的值可以赋值给另一个接口变量,只要底层类型实现了必要的方法。这个转换是在运行时进行检查的,转换失败会导致一个运行时错误:这是 'Go' 语言动态的一面,可以那它和 `Ruby` 和 `Python` 这些动态语言相比较。 +一个接口的值可以赋值给另一个接口变量,只要底层类型实现了必要的方法。这个转换是在运行时进行检查的,转换失败会导致一个运行时错误:这是 'Go' 语言动态的一面,可以拿它和 `Ruby` 和 `Python` 这些动态语言相比较。 假定: