Couler l'interface dans le type de béton en Go

Jay Singh 23 aout 2022
Couler l'interface dans le type de béton en Go

Les interfaces du langage Go sont distinctes de celles des autres langages. L’interface est un type du langage Go utilisé pour exprimer une collection d’une ou plusieurs signatures de méthode.

C’est abstrait; ainsi, vous ne pouvez pas en construire une instance. Cependant, vous êtes autorisé à établir une variable de type d’interface, à laquelle peut être affectée une valeur de type concrète contenant les méthodes requises de l’interface.

Ou, pour le dire autrement, l’interface est à la fois un ensemble de méthodes et un type personnalisé.

Ce didacticiel vous montrera comment convertir une interface en type concret dans Go.

Couler l’interface dans le type de béton en Go

L’opérateur .(type) est utile pour convertir un objet de type interface en un type concret. Une collection de signatures de méthodes implémentables de type constitue une interface.

Dans cet exemple, nous créons un objet de type interface Person. Nous ajoutons Jay Singh en tant que Person à l’objet d’interface, écrivons une méthode pour convertir l’objet d’un type d’interface en un type concret, accédons aux données du type d’objet d’interface et affichons notre résultat.

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

Production:

Hello Jay!

Article connexe - Go Conversion