Múltiples interfaces en Golang

En el lenguaje Go, la interfaz es una colección de firmas de métodos y también es un tipo, lo que significa que puede crear una variable de un tipo de interfaz. En el lenguaje Go, puede crear múltiples interfaces en su programa con la ayuda de la sintaxis dada:

type interface_name interface{

// Method signatures

}

Nota: en el lenguaje Go, no puede crear métodos con el mismo nombre en dos o más interfaces. Si intenta hacerlo, su programa entrará en pánico. Discutamos múltiples interfaces con la ayuda de un ejemplo.

Ejemplo:

// 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()
  
}

Producción:

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

Explicación: Como se muestra en el ejemplo anterior, tenemos dos interfaces con métodos, es decir, detalles() y artículos(). Aquí, el método de detalles() proporciona los detalles básicos del autor y el método de artículos() proporciona los artículos pendientes del autor.

Y una estructura nombrada como autor que contiene un conjunto de variables cuyos valores se utilizan en las interfaces. En el método main, asignamos los valores de las variables presentes, en la estructura author, para que se utilicen en las interfaces y creamos las variables de tipo interfaz para acceder a los métodos de las interfaces AuthorDetails y AuthorArticles .

Publicación traducida automáticamente

Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *