Translate

lunes, 27 de febrero de 2023

Un Ejemplo de polimorfismo en golang

 


Si seguís el blog tenes que saber más o menos que es el polimorfismo. En golang no tenemos clases pero tenemos interfaces, por lo tanto podemos utilizar el polimorfismo. 


Supongamos que tenemos que imprimir diferentes cosas documentos de texto, planillas, etc. Y queremos que una impresora pueda imprimir cualquier documento. Por lo tanto la impresora va a tomar un objeto imprimible y lo imprimira. 

Entonces vamos a hacer la interfaz imprimible. 


type Imprimible interface {

to_string() string

}


Y ahora vamos a hacer estructuras que implementen la interfaz : 


type Doc struct {

texto string

}


type Datos struct {

dato1 string

dato2 string

}


func (doc Doc) to_string() string {

return doc.texto

}


func (datos Datos) to_string() string {

return datos.dato1 + " " + datos.dato2

}


Y ahora vamos a hacer la función imprimir que para que funcione el ejemplo va a imprimir por pantalla: 


func imprimir(imprimible Imprimible) {

fmt.Println(imprimible.to_string())

}


Y por ultimo vamos a utilizar esta función: 



func main() {

var doc = Doc{texto: "Hola!! Este es Doc"}

var datos = Datos{dato1: "dato1", dato2: "dato2"}

imprimir(doc)

imprimir(datos)

}


Y listo!!!