Maison > développement back-end > Golang > Comment distinguer correctement les valeurs non définies des valeurs vides dans Go ?

Comment distinguer correctement les valeurs non définies des valeurs vides dans Go ?

Barbara Streisand
Libérer: 2024-10-25 05:26:02
original
522 Les gens l'ont consulté

How to Distinguish Properly Between Not Set vs. Empty Values in Go?

Distinguer correctement les valeurs non définies des valeurs vides

Lorsque vous travaillez avec des structures dans Go, il peut être crucial de faire la différence entre les valeurs qui n'ont jamais été définies et celles qui sont simplement vides, comme des chaînes vides.

Considérez la structure suivante :

<code class="go">type Organisation struct {
    Category string
    Code     string
    Name     string
}</code>
Copier après la connexion

Pour faire la distinction entre les catégories qui n'ont jamais été définies et celles qui sont vides, une approche pourrait consister à utiliser pointeurs vers des chaînes :

<code class="go">type Organisation struct {
    Category *string
    Code     *string
    Name     *string
}</code>
Copier après la connexion

Cependant, la valeur zéro d'une chaîne dans Go est une chaîne vide, ce qui signifie qu'il n'est pas possible de faire la distinction entre les deux cas.

Lorsqu'il s'agit de bases de données, il est important de faire la distinction entre les chaînes NULL et vides. A cet effet, le package base de données/sql propose le type sql.NullString :

<code class="go">type NullString struct {
        String string
        Valid  bool // Valid is true if String is not NULL
}</code>
Copier après la connexion

En scannant ce type et en l'utilisant comme paramètre de requête, le package base de données/sql gère l'état NULL pour vous, distinguer efficacement les valeurs non définies et vides.

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