在Go语言中,接口是方法签名的集合,它也是一种类型,意味着您可以创建接口类型的变量。在Go语言中,您可以借助给定的语法在程序中创建多个接口:
type interface_name interface{ //方法签名 }
注意:在Go语言中,不允许在两个或多个接口中创建相同的名称方法。如果尝试这样做,则您的程序将崩溃。让我们借助示例来讨论多个接口。
//多个接口的概念 package main import "fmt" // 接口 1 type AuthorDetails interface { details() } // 接口 2 type AuthorArticles interface { articles() } // 结构体 type author struct { a_name string branch string college string year int salary int particles int tarticles int } //实现接口方法1 func (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) } // 实现接口方法 2 func (a author) articles() { pendingarticles := a.tarticles - a.particles fmt.Printf("\n待定文章: %d", pendingarticles) } // Main value func 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)的结构,其中包含一些变量集,其值在接口中使用。在主要方法中,我们在作者结构中分配存在的变量的值,以便它们将在接口中使用并创建接口类型变量以访问AuthorDetails和AuthorArticles接口的方法。