Heim >Backend-Entwicklung >Golang >Wie konvertiere ich eine Wochentagszeichenfolge in time.Weekday in Go?

Wie konvertiere ich eine Wochentagszeichenfolge in time.Weekday in Go?

Barbara Streisand
Barbara StreisandOriginal
2024-10-31 10:26:02785Durchsuche

How to Convert a Weekday String to time.Weekday in Go?

Wochentagszeichenfolge in time.Weekday konvertieren

In Go wird die Konvertierung einer Wochentagszeichenfolge in einen time.Weekday-Wert nicht direkt unterstützt durch das eingebaute Zeitpaket. Um dieses Problem zu beheben, implementieren Benutzer häufig benutzerdefinierte Funktionen für die Konvertierung.

Benutzerdefinierte Funktion mit Array

Ein Ansatz besteht darin, ein Array zu erstellen, das Wochentagszeichenfolgen der Zeit zuordnet. Wochentagswerte. Diese Methode kann jedoch aufgrund der linearen Suche, die erforderlich ist, um den entsprechenden Wochentag zu finden, ineffizient sein.

Verbesserte Funktion mithilfe einer Karte

Eine effizientere Lösung ist die Verwendung einer Karte anstelle eines Arrays. Dies ermöglicht schnellere Suchvorgänge und eine einfachere Implementierung. Durch Initialisieren der Karte mit Schlüssel-Wert-Paaren von Wochentagszeichenfolgen und den entsprechenden time.Weekday-Werten kann die Funktion eine direkte Suche durchführen, um den gewünschten time.Weekday-Wert zu erhalten.

Beispielimplementierung:

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

Testen:

<code class="go">fmt.Println(parseWeekday("Monday")) // Output: Monday <nil>
fmt.Println(parseWeekday("Friday")) // Output: Friday <nil>
fmt.Println(parseWeekday("Invalid")) // Output: Sunday invalid weekday 'Invalid'</code>

Erweiterung zum Parsen von Kurznamen

Zusätzlich die Karte -basierter Ansatz kann erweitert werden, um kurze Wochentagsnamen zu analysieren (z. B. „Mo“ für Montag), indem die Karte sowohl mit den vollständigen als auch mit den Kurznamen initialisiert wird.

Fazit

Die Verwendung eines kartenbasierten Ansatzes zum Konvertieren von Wochentagszeichenfolgen in Zeitangaben. Wochentagswerte sind eine empfohlene und idiomatische Technik in Golang. Es bietet schnellere Suchvorgänge und Flexibilität bei der Verarbeitung sowohl vollständiger als auch kurzer Wochentagsnamen.

Das obige ist der detaillierte Inhalt vonWie konvertiere ich eine Wochentagszeichenfolge in time.Weekday in Go?. 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