Heim > Artikel > Backend-Entwicklung > Wie konvertiere ich Wochentagszeichenfolgen effizient in time.Weekday in Go?
Wochentagszeichenfolge in time.Weekday analysieren: Ein idiomatischer Ansatz mit einer Karte
Konvertieren einer Wochentagszeichenfolge in einen entsprechenden time.Weekday-Wert in Go erfordert eine benutzerdefinierte Lösung, da für diese Konvertierung keine integrierte Funktionalität vorhanden ist. Während die vorgestellte Array-basierte Funktion eine praktikable Lösung bietet, bietet ein kartenbasierter Ansatz Vorteile in Bezug auf Effizienz und Flexibilität.
Verbesserte Lösung mithilfe einer Karte
Anstatt zu verwenden ein Array, das eine Karte mit Wochentagszeichenfolgen als Schlüssel und der entsprechenden Zeit verwendet. Wochentagswerte als Werte beschleunigen Suchvorgänge erheblich und vereinfachen den Code:
<code class="go">var daysOfWeek = map[string]time.Weekday{ "Sunday": time.Sunday, "Monday": time.Monday, "Tuesday": time.Tuesday, "Wednesday": time.Wednesday, "Thursday": time.Thursday, "Friday": time.Friday, "Saturday": time.Saturday, } func parseWeekday(v string) (time.Weekday, error) { if d, ok := daysOfWeek[v]; ok { return d, nil } return time.Sunday, fmt.Errorf("invalid weekday '%s'", v) }</code>
Vorteile des kartenbasierten Ansatzes
<code class="go">var daysOfWeek = map[string]time.Weekday{} func init() { for d := time.Sunday; d <= time.Saturday; d++ { daysOfWeek[d.String()] = d } }</code>
Erweitern der Karte für zusätzliche Eingaben
Dieser kartenbasierte Ansatz ermöglicht auch das flexible Hinzufügen neuer gültiger Werte, die in time.Weekday geparst werden können. Beispielsweise können kurze, aus drei Buchstaben bestehende Wochentagsnamen mit einer einfachen Schleife eingefügt werden:
<code class="go">var daysOfWeek = map[string]time.Weekday{} func init() { for d := time.Sunday; d <= time.Saturday; d++ { name := d.String() daysOfWeek[name] = d daysOfWeek[name[:3]] = d } }</code>
Diese Erweiterung ermöglicht das Parsen sowohl vollständiger Wochentagsnamen (z. B. „Montag“) als auch kurzer Wochentagsnamen (z. B. „Montag“) ") in time.Weekday.
Die Verwendung einer Karte in diesem Kontext bietet eine schnellere, bequemere und erweiterbare Möglichkeit, Wochentagszeichenfolgen in time.Weekday-Werte in Go zu analysieren.
Das obige ist der detaillierte Inhalt vonWie konvertiere ich Wochentagszeichenfolgen effizient in time.Weekday in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!