Maison > développement back-end > Golang > Comment convertir en toute sécurité une valeur d'interface {} en un entier dans Go ?

Comment convertir en toute sécurité une valeur d'interface {} en un entier dans Go ?

DDD
Libérer: 2024-12-11 12:16:18
original
800 Les gens l'ont consulté

How to Safely Convert an interface{} Value to an int in Go?

Assertions de type pour les conversions de valeur d'interface{} en Int

La conversion d'une valeur d'interface{} en int peut provoquer des erreurs si elle n'est pas effectuée correctement. Une assertion de type est nécessaire pour cette conversion.

Explication de l'erreur

Le message d'erreur suggère que vous ne pouvez pas convertir la valeur interface{} directement en int car il doit y avoir une assertion de type.

Examen de code

Dans votre code :

    val, ok := m["area_id"]
    if !ok {
        utility.CreateErrorResponse(w, "Error: Area ID is missing from submitted data.")
        return
    }

    fmt.Fprintf(w, "Type = %v", val)   // <--- Type = float64
    iAreaId := int(val)                // <--- Error on this line.
Copier après la connexion

Le problème réside dans cette ligne :

    iAreaId := int(val)
Copier après la connexion

Solution

Au lieu de convertir directement la valeur, vous devez utilisez une assertion de type. Il vérifie si la valeur peut être convertie en int et renvoie une erreur sinon. Il existe deux façons de procéder :

// Panicking version
iAreaId := val.(int)

// Non-panicking version
iAreaId, ok := val.(int)
if !ok {
    // Handle the error case here
}
Copier après la connexion

En effectuant cette modification, vous pouvez réussir à convertir la valeur interface{} en int et continuer l'exécution de votre code.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal