Heim >Backend-Entwicklung >Golang >Wie kann man in Go richtig zwischen nicht festgelegten und leeren Werten unterscheiden?

Wie kann man in Go richtig zwischen nicht festgelegten und leeren Werten unterscheiden?

Barbara Streisand
Barbara StreisandOriginal
2024-10-25 05:26:02533Durchsuche

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

Richtige Unterscheidung zwischen nicht festgelegten und leeren Werten

Bei der Arbeit mit Strukturen in Go kann es entscheidend sein, zwischen Werten zu unterscheiden, die noch nie festgelegt wurden, und solchen, die noch nicht festgelegt wurden sind einfach leer, wie z. B. leere Zeichenfolgen.

Bedenken Sie die folgende Struktur:

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

Um zwischen Kategorien zu unterscheiden, die noch nie festgelegt wurden, und solchen, die leer sind, könnte ein Ansatz darin bestehen, zu verwenden Zeiger auf Strings:

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

Der Nullwert für einen String in Go ist jedoch ein leerer String, was bedeutet, dass es nicht möglich ist, zwischen den beiden Fällen zu unterscheiden.

Beim Umgang mit Datenbanken Es ist wichtig, zwischen NULL- und Leerzeichenfolgen zu unterscheiden. Zu diesem Zweck bietet das Datenbank-/SQL-Paket den Typ sql.NullString an:

<code class="go">type NullString struct {
        String string
        Valid  bool // Valid is true if String is not NULL
}</code>

Durch das Scannen in diesen Typ und die Verwendung als Abfrageparameter verwaltet das Datenbank-/SQL-Paket den NULL-Status für Sie. effektive Unterscheidung zwischen nicht gesetzten und leeren Werten.

Das obige ist der detaillierte Inhalt vonWie kann man in Go richtig zwischen nicht festgelegten und leeren Werten unterscheiden?. 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