Maison  >  Article  >  développement back-end  >  Faire la distinction entre les valeurs non définies et les valeurs vides/vides dans les structures Go : comment le faire correctement ?

Faire la distinction entre les valeurs non définies et les valeurs vides/vides dans les structures Go : comment le faire correctement ?

DDD
DDDoriginal
2024-10-24 10:57:30237parcourir

Distinguishing Between Not Set and Blank/Empty Values in Go Structs: How to Do It Correctly?

Distinguer correctement les valeurs non définies et les valeurs vides/vides dans les structures Go

Dans Go, lorsque vous travaillez avec des structures, il est essentiel de faire la distinction entre les valeurs qui ne sont pas définies ( appelés « nil ») et ceux qui sont explicitement vides (par exemple, une chaîne vide). Cette distinction devient cruciale lors de l'interaction avec des bases de données ou de la validation des données.

Détermination du statut de la valeur

Considérez l'exemple suivant :

<code class="go">type Organisation struct {
    Category string
    Code     string
    Name     string
}</code>

Si vous souhaitez déterminer si la catégorie a été défini, vous ne pouvez pas simplement vérifier si sa valeur est vide car même lorsqu'il est défini sur une chaîne vide, il retournera toujours false.

Utiliser des pointeurs pour gérer les valeurs nulles

Une approche est pour utiliser des pointeurs pour les champs qui peuvent être non définis. Par défaut, la valeur d'un pointeur est nulle, ce qui indique qu'il ne pointe vers aucune valeur valide. Cela vous permet de distinguer facilement les valeurs non définies et non vides.

<code class="go">type Organisation struct {
    Category *string // Pointer to a string
    Code     *string // Pointer to a string
    Name     *string // Pointer to a string
}</code>

Si le champ Catégorie n'est pas défini, la valeur de son pointeur sera nulle. Cependant, l'utilisation de pointeurs présente certaines limites, telles que l'ajout de complexité et une confusion potentielle lors de l'accès aux valeurs réelles.

Gestion des valeurs nulles dans les interactions avec les bases de données

Lorsque vous traitez des bases de données, il est courant de rencontrer des valeurs nulles. . Pour les gérer correctement, pensez à utiliser une bibliothèque tierce telle que le package database/sql et son type sql.NullString.

<code class="go">type NullString struct {
    String string
    Valid  bool
}</code>

sql.NullString vous permet de représenter à la fois des valeurs de chaîne nulles et non nulles. . Son champ String contient la valeur réelle, tandis que Valid indique si la valeur est nulle ou non. Ce type fournit un moyen pratique de gérer les valeurs nulles dans les opérations de base de données.

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!

Déclaration:
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