美文网首页
golang中的 struct & interface 嵌入(E

golang中的 struct & interface 嵌入(E

作者: 个00个 | 来源:发表于2018-12-21 13:58 被阅读0次

参考这篇文章 https://studygolang.com/articles/6934

package main

import "fmt"

type Printer interface{
    Print()
}


type CanonPrinter struct{
    Printname string
}

// 若不实现此方法则下面的赋值会报错
func (printer CanonPrinter) Print(){
    fmt.Println("AAA")
}

type PrintWorker struct{
    Printer              // 内嵌了一个接口
    name string
    age  int
}



// 实现 xxx
func (printworker PrintWorker) Print(){
    fmt.Println("BBB")
    printworker.Printer.Print()       // 这里 printworker 首先引用内部嵌入Printer接口的实例,然后调用Printer 接口实例的Print()方法
}



func main(){
    canon := CanonPrinter{"canoprint_num_1"}
    printworker := PrintWorker{Printer:canon, name: "ansendong", age: 34}
    printworker.Print()   //如果没有上述 xxx 的实现,则这里只调用CanonPrinter实现的Print()方法。
}

相关文章

网友评论

      本文标题:golang中的 struct & interface 嵌入(E

      本文链接:https://www.haomeiwen.com/subject/uxyukqtx.html