Maison  >  Article  >  développement back-end  >  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
Barbara Streisandoriginal
2024-10-25 05:26:02415parcourir

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>

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>

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>

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!

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