1-1接口的概念
下载
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func retrieve(url string) []byte {
resp, err := http.Get(url)
if err != nil {
panic(err)
}
defer resp.Body.Close()
bytes, _ := ioutil.ReadAll(resp.Body)
return bytes
}
func main() {
fmt.Println(retrieve("https://www.baidu.com/"))
}
接口
package infra
import (
"io/ioutil"
"net/http"
)
type Retriever struct{}
func (Retriever) Get(url string) string {
resp, err := http.Get(url)
if err != nil {
panic(err)
}
defer resp.Body.Close()
bytes, _ := ioutil.ReadAll(resp.Body)
return string(bytes)
}
package main
import "fmt"
func getRetriever() retriever {
return infra.Retriever{}
}
type retriever interface {
Get(string) string
}
func main() {
var r retriever = getRetriever()
fmt.Println(r.Get("https://www.baidu.com/"))
}