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!