Modellieren optionaler Zeichenfolgen in Go
In Go erfordert die Darstellung einer optionalen Zeichenfolge die Berücksichtigung der Abwesenheit oder Anwesenheit eines Zeichenfolgewerts. Während es in Go hierfür an spezifischen Variantentypen mangelt, gibt es alternative Strategien.
Ansatz 1: Verwendung von *string
Eine Möglichkeit besteht darin, einen Zeiger auf einen String (*string) zu verwenden ), was sowohl Null- als auch Nicht-Null-Werte zulässt. Der Zugriff auf den dereferenzierten String-Wert kann jedoch umständlich sein.
Ansatz 2: Verwendung eines Wrappers
Ein Wrapper-Typ kann explizit einen „Abwesend“-Status und einen String-Wert definieren um die optionale Zeichenfolge zu speichern. Dieser Ansatz bietet eine klare Schnittstelle für die Arbeit mit optionalen Zeichenfolgen, erhöht jedoch die Komplexität des Codes.
Ansatz 3: Verwendung der leeren Zeichenfolge ("")
Ein Motiv Die Lösung besteht darin, die leere Zeichenfolge („“) als Nullwert für optionale Zeichenfolgen festzulegen. Dies hat den Vorteil, dass Go die implizite Initialisierung von Zeichenfolgen mit der leeren Zeichenfolge nutzt und die meisten Anwendungsfälle bewältigen kann, in denen eine leere Zeichenfolge kein gültiger Wert ist.
Ansatz 4: Auswahl einer ungültigen UTF-8-Zeichenfolge
In Fällen, in denen die leere Zeichenfolge ein gültiger Wert ist, kann man eine ungültige UTF-8-Zeichenfolge als Nullwert verwenden. Dadurch können sowohl die leere Zeichenfolge als auch der gültige Text in optionalen Zeichenfolgen gespeichert werden.
Beispiel für die Verwendung der leeren Zeichenfolge
const Null = "" func main() { s := Null if s == Null { fmt.Println("String is absent") } else { fmt.Println(s) } }
Das obige ist der detaillierte Inhalt vonWie kann ich optionale Zeichenfolgen in Go am besten modellieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!