6.1 接口的概念

一、接口的概念

  1. 基础语法

    type Traversal interface {
        Traverse()
    }
    
    func main() {
        traversal := getTraversal()
        traversal.Traversal()
    }
  2. 示例

    // main
    func getRetriever() retriever {
    	return infra.Retriever{}
    }
    
    // 这就是接口
    type retriever interface {
    	Get(string) string
    }
    
    func main() {
    	var r retriever = getRetriever()
    	fmt.Println("%s\n", r.Get("https://imooc.com"))
    }
    
    // 函数1
    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)
    }
    
    // 函数2
    type Retriever struct {
    }
    
    func (Retriever) Get(utl string) string {
    	return "success"
    }

    备注:接口与java不同,java需要手动实现,go不用实现

Last updated

Was this helpful?