6.3 接口的定义和实现
一、接口的定义
接口由
使用者定义接口的实现是隐式的
是要实现接口里的方法即可
代码实现:
// 定义接口以及使用 package main // 接口 type Retriever interface { Get(url string) string } // 使用者 func download(r Retriever) string { return r.Get("https://www.imooc.com") } // 主要使用 func main() { var r Retriever r = mock.Retriever{"this is "} r = real.Retriever{} fmt.Println(download(r)) } // 实现方法: // 第一个 type Retriever struct { Contents string } func (r Retriever) Get(url string) string { return r.Contents } // 第二个 type Retriever struct { UserAgent string Timeout time.Duration } func (r Retriever) Get(url string) string { resp, err := http.Get(url) if err != nil { panic(err) } result, err := httputil.DumpResponse(resp, true) resp.Body.Close() if err != nil { panic(err) } return string(result) }
Last updated
Was this helpful?