Golang 多个接口

Golang 多个接口

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

type interface_name interface{

// Method signatures

}

注意: 在Go语言中,你不允许在两个或多个接口中创建同名方法。如果你试图这样做,那么你的程序就会陷入困境。让我们借助一个例子来讨论多接口。

例子

// Go program to illustrate the 
// concept of multiple interfaces
package main
  
import "fmt"
  
// Interface 1
type AuthorDetails interface {
    details()
}
  
// Interface 2
type AuthorArticles interface {
    articles()
}
  
// Structure
type author struct {
    a_name    string
    branch    string
    college   string
    year      int
    salary    int
    particles int
    tarticles int
}
  
// Implementing method 
// of the interface 1
func (a author) details() {
  
    fmt.Printf("Author Name: %s", a.a_name)
    fmt.Printf("\nBranch: %s and passing year: %d", a.branch, a.year)
    fmt.Printf("\nCollege Name: %s", a.college)
    fmt.Printf("\nSalary: %d", a.salary)
    fmt.Printf("\nPublished articles: %d", a.particles)
  
}
  
// Implementing method
// of the interface 2
func (a author) articles() {
  
    pendingarticles := a.tarticles - a.particles
    fmt.Printf("\nPending articles: %d", pendingarticles)
}
  
// Main value
func main() {
  
    // Assigning values 
    // to the structure
    values := author{
        a_name:    "Mickey",
        branch:    "Computer science",
        college:   "XYZ",
        year:      2012,
        salary:    50000,
        particles: 209,
        tarticles: 309,
    }
  
    // Accessing the method
    // of the interface 1
    var i1 AuthorDetails = values
    i1.details()
  
    // Accessing the method
    // of the interface 2
    var i2 AuthorArticles = values
    i2.articles()
  
}

输出

Author Name: Mickey
Branch: Computer science and passing year: 2012
College Name: XYZ
Salary: 50000
Published articles: 209
Pending articles: 100

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

Golang中的多个接口

还有一个名为 “作者 “的结构,它包含一些变量集,这些变量的值在接口中被使用。在主方法中,我们为作者结构中的变量赋值,以便它们在接口中使用,并创建接口类型的变量来访问AuthorDetails和AuthorArticles接口的方法。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程