Konvertieren Sie eine Wochentagszeichenfolge in einen time.Weekday-Wert
In Go müssen Sie möglicherweise eine Zeichenfolge konvertieren, die a darstellt Tag der Woche zu seinem entsprechenden time.Weekday-Wert.
Ein Ansatz besteht darin, ein Array wie folgt zu verwenden:
<code class="go">var daysOfWeek = [...]string{ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", } func parseWeekday(v string) (time.Weekday, error) { for i := range daysOfWeek { if daysOfWeek[i] == v { return time.Weekday(i), nil } } return time.Sunday, fmt.Errorf("invalid weekday '%s'", v) }</code>
Ein alternativer Ansatz unter Verwendung einer Karte
Für mehr Effizienz und einfachere Suche ist eine Karte eine idiomatischere Wahl:
<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>
Zusätzliche Parsing-Optionen
Die Verwendung einer Karte ermöglicht Ihnen um die unterstützten Wochentage um abgekürzte Formen zu erweitern:
<code class="go">for d := time.Sunday; d <= time.Saturday; d++ { name := d.String() daysOfWeek[name] = d daysOfWeek[name[:3]] = d }</code>
Dies ermöglicht das Parsen sowohl vollständiger als auch abgekürzter Wochentagszeichenfolgen, z. B. „Montag“ und „Mo“.
Das obige ist der detaillierte Inhalt vonWie konvertiere ich eine Wochentagszeichenfolge in einen time.Weekday-Wert in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!