Heim  >  Artikel  >  Backend-Entwicklung  >  Unterscheiden zwischen nicht gesetzten und leeren/leeren Werten in Go-Strukturen: Wie geht das richtig?

Unterscheiden zwischen nicht gesetzten und leeren/leeren Werten in Go-Strukturen: Wie geht das richtig?

DDD
DDDOriginal
2024-10-24 10:57:30237Durchsuche

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

Richtige Unterscheidung zwischen nicht gesetzten und leeren/leeren Werten in Go-Strukturen

In Go ist es bei der Arbeit mit Strukturen wichtig, zwischen Werten zu unterscheiden, die nicht gesetzt sind ( als „nil“ bezeichnet) und solche, die explizit leer sind (z. B. eine leere Zeichenfolge). Diese Unterscheidung ist von entscheidender Bedeutung, wenn Sie mit Datenbanken interagieren oder eine Datenvalidierung durchführen.

Bestimmen des Wertstatus

Betrachten Sie das folgende Beispiel:

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

Wenn Sie feststellen möchten, ob die Kategorie Wenn das Feld festgelegt wurde, können Sie nicht einfach überprüfen, ob sein Wert leer ist, da es selbst dann immer noch false zurückgibt, wenn es auf eine leere Zeichenfolge festgelegt ist.

Verwenden von Zeigern zum Behandeln von Nullwerten

Ein Ansatz ist um Zeiger für Felder zu verwenden, die möglicherweise nicht gesetzt sind. Standardmäßig ist der Wert eines Zeigers Null, was bedeutet, dass er auf keinen gültigen Wert zeigt. Dadurch können Sie leicht zwischen nicht gesetzten und nicht leeren Werten unterscheiden.

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

Wenn das Kategoriefeld nicht gesetzt ist, ist sein Zeigerwert Null. Allerdings weist die Verwendung von Zeigern bestimmte Einschränkungen auf, wie z. B. zusätzliche Komplexität und potenzielle Verwirrung beim Zugriff auf die tatsächlichen Werte.

Umgang mit Nullwerten in Datenbankinteraktionen

Beim Umgang mit Datenbanken stößt man häufig auf Nullwerte . Um sie ordnungsgemäß zu handhaben, sollten Sie die Verwendung einer Bibliothek eines Drittanbieters in Betracht ziehen, z. B. des Pakets „database/sql“ und seines Typs „sql.NullString“.

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

sql.NullString ermöglicht Ihnen die Darstellung sowohl von Null- als auch Nicht-Null-Zeichenfolgenwerten . Sein String-Feld enthält den tatsächlichen Wert, während Valid angibt, ob der Wert null ist oder nicht. Dieser Typ bietet eine praktische Möglichkeit, mit Nullwerten in Datenbankoperationen umzugehen.

Das obige ist der detaillierte Inhalt vonUnterscheiden zwischen nicht gesetzten und leeren/leeren Werten in Go-Strukturen: Wie geht das richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn