Fundir interfaz en tipo de hormigón en Go
Las interfaces del lenguaje Go son distintas de las de otros lenguajes. La interfaz es un tipo en el lenguaje Go que se utiliza para expresar una colección de una o más firmas de métodos.
Es abstracto; por lo tanto, no puede construir una instancia de él. Sin embargo, se le permite establecer una variable de tipo de interfaz, a la que se le puede asignar un valor de tipo concreto que contenga los métodos necesarios de la interfaz.
O, dicho de otro modo, la interfaz es tanto un conjunto de métodos como un tipo personalizado.
Este tutorial demostrará cómo convertir la interfaz en un tipo concreto en Go.
Fundir interfaz en tipo de hormigón en Go
El operador .(type)
es útil para convertir un objeto de tipo interfaz en un tipo concreto. Una colección de firmas de métodos implementables de tipo constituye una interfaz.
En este ejemplo, creamos un objeto de tipo interfaz Persona
. Agregamos Jay Singh
como una Persona
al objeto de la interfaz, escribimos un método para convertir el objeto de un tipo de interfaz en un tipo concreto, accedemos a los datos del tipo de objeto de la interfaz y mostramos nuestro resultado.
package main
import "fmt"
type Person struct {
firstName string
lastName string
}
func main() {
person := Person{
firstName: "Jay",
lastName: "Singh",
}
printIfPerson(person)
}
func printIfPerson(object interface{}) {
person, ok := object.(Person)
if ok {
fmt.Printf("Hello %s!\n", person.firstName)
}
}
Producción :
Hello Jay!