在Go語言中,接口是方法簽名的集合,它也是一種類型,意味著您可以創(chuàng)建接口類型的變量。在Go語言中,您可以借助給定的語法在程序中創(chuàng)建多個(gè)接口:
type interface_name interface{
//方法簽名
}注意:在Go語言中,不允許在兩個(gè)或多個(gè)接口中創(chuàng)建相同的名稱方法。如果嘗試這樣做,則您的程序?qū)⒈罎?。讓我們借助示例來討論多個(gè)接口。
//多個(gè)接口的概念
package main
import "fmt"
// 接口 1
type AuthorDetails interface {
details()
}
// 接口 2
type AuthorArticles interface {
articles()
}
// 結(jié)構(gòu)體
type author struct {
a_name string
branch string
college string
year int
salary int
particles int
tarticles int
}
//實(shí)現(xiàn)接口方法1
func (a author) details() {
fmt.Printf("作者: %s", a.a_name)
fmt.Printf("\n部分: %s 通過日期: %d", a.branch, a.year)
fmt.Printf("\n學(xué)校名稱: %s", a.college)
fmt.Printf("\n薪水: %d", a.salary)
fmt.Printf("\n出版文章數(shù): %d", a.particles)
}
// 實(shí)現(xiàn)接口方法 2
func (a author) articles() {
pendingarticles := a.tarticles - a.particles
fmt.Printf("\n待定文章: %d", pendingarticles)
}
// Main value
func main() {
//結(jié)構(gòu)體賦值
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 學(xué)校名稱: XYZ 薪水: 50000 出版文章數(shù): 209 待定文章: 100
用法解釋:如上例所示,我們有兩個(gè)帶有方法的接口,即details()和Articles()。在這里,details()方法提供了作者的基本詳細(xì)信息,而articles()方法提供了作者的待定文章。

還有一個(gè)名為作者(Author)的結(jié)構(gòu),其中包含一些變量集,其值在接口中使用。在主要方法中,我們?cè)谧髡呓Y(jié)構(gòu)中分配存在的變量的值,以便它們將在接口中使用并創(chuàng)建接口類型變量以訪問AuthorDetails和AuthorArticles接口的方法。