Maison > Article > développement back-end > Comment convertir efficacement les chaînes de jours de la semaine en time.Weekday dans Go ?
Analyser la chaîne du jour de la semaine en heure.Jour de la semaine : une approche idiomatique avec une carte
Conversion d'une chaîne de jour de la semaine en une heure correspondante.Valeur du jour de la semaine dans Go nécessite une solution personnalisée car il n'existe aucune fonctionnalité intégrée pour cette conversion. Bien que la fonction basée sur un tableau présentée fournisse une solution réalisable, une approche basée sur une carte offre des avantages en termes d'efficacité et de flexibilité.
Solution améliorée utilisant une carte
Au lieu d'utiliser un tableau, utilisant une carte avec des chaînes de jours de la semaine comme clés et leur heure correspondante. Les valeurs des jours de la semaine en tant que valeurs accélèrent considérablement les recherches et simplifient le 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>
Avantages de l'approche basée sur la carte
<code class="go">var daysOfWeek = map[string]time.Weekday{} func init() { for d := time.Sunday; d <= time.Saturday; d++ { daysOfWeek[d.String()] = d } }</code>
Agrandissement de la carte pour une entrée supplémentaire
Cette approche basée sur une carte permet également l'ajout flexible de nouvelles valeurs valides qui peuvent être analysées dans le temps.Weekday. Par exemple, des noms de jours de semaine courts à 3 lettres peuvent être inclus avec une simple boucle :
<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>
Cette extension permet d'analyser à la fois les noms de jours de semaine complets (par exemple, "Lundi") et les noms de jours de semaine courts (par exemple, "Mon ") en time.Weekday.
L'utilisation d'une carte dans ce contexte offre un moyen plus rapide, plus pratique et extensible d'analyser les chaînes de la semaine en valeurs time.Weekday dans Go.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!