mirror of
https://github.com/gopl-zh/gopl-zh.github.com.git
synced 2025-08-05 15:12:33 +00:00
ch7: fix code format
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
## 7.2. 接口類型
|
||||
|
||||
接口類型具體描述了一繫列方法的集合,一個實現了這些方法的具體類型是這個接口類型的實例。
|
||||
|
||||
io.Writer類型是用的最廣泛的接口之一,因爲它提供了所有的類型寫入bytes的抽象,包括文件類型,內存緩衝區,網絡鏈接,HTTP客戶端,壓縮工具,哈希等等。io包中定義了很多其它有用的接口類型。Reader可以代表任意可以讀取bytes的類型,Closer可以是任意可以關閉的值,例如一個文件或是網絡鏈接。(到現在你可能註意到了很多Go語言中單方法接口的命名習慣)
|
||||
@@ -6,10 +7,10 @@ io.Writer類型是用的最廣泛的接口之一,因爲它提供了所有的
|
||||
```go
|
||||
package io
|
||||
type Reader interface {
|
||||
Read(p []byte) (n int, err error)
|
||||
Read(p []byte) (n int, err error)
|
||||
}
|
||||
type Closer interface {
|
||||
Close() error
|
||||
Close() error
|
||||
}
|
||||
```
|
||||
|
||||
@@ -17,21 +18,21 @@ type Closer interface {
|
||||
|
||||
```go
|
||||
type ReadWriter interface {
|
||||
Reader
|
||||
Writer
|
||||
Reader
|
||||
Writer
|
||||
}
|
||||
type ReadWriteCloser interface {
|
||||
Reader
|
||||
Writer
|
||||
Closer
|
||||
Reader
|
||||
Writer
|
||||
Closer
|
||||
}
|
||||
```
|
||||
上面用到的語法和結構內嵌相似,我們可以用這種方式以一個簡寫命名另一個接口,而不用聲明它所有的方法。這種方式本稱爲接口內嵌。盡管略失簡潔,我們可以像下面這樣,不使用內嵌來聲明io.Writer接口。
|
||||
|
||||
```go
|
||||
type ReadWriter interface {
|
||||
Read(p []byte) (n int, err error)
|
||||
Write(p []byte) (n int, err error)
|
||||
Read(p []byte) (n int, err error)
|
||||
Write(p []byte) (n int, err error)
|
||||
}
|
||||
```
|
||||
|
||||
@@ -39,8 +40,8 @@ type ReadWriter interface {
|
||||
|
||||
```go
|
||||
type ReadWriter interface {
|
||||
Read(p []byte) (n int, err error)
|
||||
Writer
|
||||
Read(p []byte) (n int, err error)
|
||||
Writer
|
||||
}
|
||||
```
|
||||
|
||||
|
Reference in New Issue
Block a user