"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment gérer les conversions de type lorsque vous travaillez avec des bases de données dans GO?

Comment gérer les conversions de type lorsque vous travaillez avec des bases de données dans GO?

Publié le 2025-03-22
Parcourir:235

How to Handle Type Conversions When Working with Databases in Go?

Golang Type Assertion: Gestion des conversions de type de base de données

Dans Go, les assertions de type nous permettent de convertir une valeur en un type différent en fonction de son type réel. Ceci est utile lorsque vous travaillez avec des types dynamiques ou en implémentant des interfaces personnalisées.

Considérons un scénario où nous créons un type personnalisé appelé rôle basé sur une chaîne et souhaitons l'utiliser avec un pilote de base de données. Pour ce faire, nous devons implémenter les interfaces de valeur et de scanner.

Cependant, tout en implémentant ces interfaces, nous pouvons rencontrer l'erreur:

cannot convert value.(string) (type string) to type *Role

Solution de scan:

La fonction de scan est rétrospective:

Données est de rétr développement: la fonction de scan est rétractée:
func (r *Role) Scan(value interface{}) error {
    *r = Role(value.(string))
    return nil
}

func (r * role) scan (interface de valeur {}) { * r = rôle (valeur. (chaîne)) retour nil }

Solution pour la fonction de valeur:

func (r Role) Value() (driver.Value, error) {
    return string(r), nil
}

func (r role) value () (driver.value, error) { Retour String (R), nil }

Notez que cette fonction ne gère pas ou ne produit pas de valeurs nulles.

en suivant ces corrections, nous pouvons implémenter avec succès la conversion de type pour notre type de rôle personnalisé lorsque vous travaillez avec des pilotes de base de données. How to Handle Type Conversions When Working with Databases in Go?

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3