阅读 106

Go 语言多个接口

在Go语言中,接口是方法签名的集合,它也是一种类型,意味着您可以创建接口类型的变量。在Go语言中,您可以借助给定的语法在程序中创建多个接口:

type interface_name interface{//方法签名}

注意:在Go语言中,不允许在两个或多个接口中创建相同的名称方法。如果尝试这样做,则您的程序将崩溃。让我们借助示例来讨论多个接口。

示例

//多个接口的概念package mainimport "fmt"// 接口 1type AuthorDetails interface {
    details()
}// 接口 2type AuthorArticles interface {
    articles()
}// 结构体type author struct {
    a_name    string    branch    string    college   string    year      int    salary    int    particles int    tarticles int}//实现接口方法1func (a author) details() {

    fmt.Printf("作者: %s", a.a_name)
    fmt.Printf("\n部分: %s 通过日期: %d", a.branch, a.year)
    fmt.Printf("\n学校名称: %s", a.college)
    fmt.Printf("\n薪水: %d", a.salary)
    fmt.Printf("\n出版文章数: %d", a.particles)

}// 实现接口方法 2func (a author) articles() {

    pendingarticles := a.tarticles - a.particles
    fmt.Printf("\n待定文章: %d", pendingarticles)
}// Main valuefunc main() {

    //结构体赋值    values := author{
        a_name:    "Mickey",
        branch:    "Computer science",
        college:   "XYZ",
        year:      2012,
        salary:    50000,
        particles: 209,
        tarticles: 309,
    }

    // 访问使用接口1的方法    var i1 AuthorDetails = values
    i1.details()

    //访问使用接口2的方法    var i2 AuthorArticles = values
    i2.articles()

}

输出:

作者: Mickey部分: Computer science 通过日期: 2012学校名称: XYZ薪水: 50000出版文章数: 209待定文章: 100

用法解释:如上例所示,我们有两个带有方法的接口,即details()和Articles()。在这里,details()方法提供了作者的基本详细信息,而articles()方法提供了作者的待定文章。

还有一个名为作者(Author)的结构,其中包含一些变量集,其值在接口中使用。在主要方法中,我们在作者结构中分配存在的变量的值,以便它们将在接口中使用并创建接口类型变量以访问AuthorDetailsAuthorArticles接口的方法。


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐