Maison > développement back-end > Golang > Comment l'assertion de type « .(data_type) » de Go fonctionne-t-elle pour une extraction sécurisée des données à partir des interfaces ?

Comment l'assertion de type « .(data_type) » de Go fonctionne-t-elle pour une extraction sécurisée des données à partir des interfaces ?

Mary-Kate Olsen
Libérer: 2024-12-23 07:03:29
original
186 Les gens l'ont consulté

How Does Go's `.(data_type)` Type Assertion Work for Safe Data Extraction from Interfaces?

Comprendre l'utilisation de .(data_type) dans Go

Dans Go, la syntaxe .(data_type), communément appelée assertion de type , joue un rôle crucial dans l'extraction d'un type de données spécifique à partir d'une valeur d'interface.

Tapez les assertions dans Pratique

Considérez l'extrait de code suivant :

package main

import "fmt"
import "reflect"

func main() {
    var b interface{}
    b = "silly"

    s, ok := b.(string)
    if ok {
        fmt.Println(s)
    } else {
        fmt.Println("b is not a string")
    }
}
Copier après la connexion

Ici, nous avons une variable d'interface b qui contient la valeur de chaîne "idiot". En utilisant l'assertion de type b.(string), nous pouvons récupérer une valeur de type string et l'attribuer à la variable s. La variable booléenne ok indique si l'assertion de type a réussi (vrai) ou non (faux).

Comprendre le concept

Contrairement à l'expression Reflect.TypeOf(b) , qui fournit des informations sur le type de la valeur de l'interface au moment de la compilation, l'assertion de type b.(string) vérifie le type de la valeur de l'interface au moment de l'exécution. Si la valeur stockée dans l'interface n'est pas du type spécifié, l'assertion de type paniquera.

Assurer la sécurité des types

Les assertions de type sont essentielles pour garantir la sécurité des types dans Allez les programmes. En vérifiant et en convertissant explicitement les valeurs de l'interface, nous pouvons éviter les erreurs d'exécution qui peuvent survenir si l'hypothèse concernant leurs types est incorrecte.

Notes supplémentaires

Il convient de noter que une assertion de type ne renvoie une valeur que si elle réussit. Si l’affirmation échoue, cela va paniquer. Pour gérer cela avec élégance, vous pouvez utiliser la variable booléenne facultative pour vérifier le succès de l'assertion.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal