Maison > développement back-end > Golang > le corps du texte

Comment convertir une chaîne de jour de la semaine en « time.Weekday » dans Go ?

Mary-Kate Olsen
Libérer: 2024-10-31 04:38:30
original
779 Les gens l'ont consulté

How to Convert a Day of Week String to `time.Weekday` in Go?

Convertir la chaîne du jour de la semaine en heure.Weekday

Dans Go, le package time n'offre pas de fonction intégrée pour convertir une chaîne représentant un jour de la semaine dans une valeur time.Weekday. Ainsi, une solution courante consiste à créer une fonction personnalisée pour effectuer cette conversion.

Une approche consiste à utiliser un tableau pour stocker les noms des jours de la semaine et leurs valeurs time.Weekday correspondantes. Cependant, une solution plus efficace et plus idiomatique consiste à utiliser une carte.

Utilisation d'une carte pour la conversion :

Une carte permet des recherches plus rapides et directes par rapport à un tableau. Voici un extrait illustrant cette approche :

<code class="go">var daysOfWeek = map[string]time.Weekday{
    "Sunday":    time.Sunday,
    "Monday":    time.Monday,
    // ... and so on for all weekdays
}

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>
Copier après la connexion

Initialisation de la carte en toute sécurité :

Pour garantir une initialisation correcte, vous pouvez utiliser une boucle for pour remplir la carte joursOfWeek :

<code class="go">var daysOfWeek = map[string]time.Weekday{}

func init() {
    for d := time.Sunday; d <= time.Saturday; d++ {
        daysOfWeek[d.String()] = d
    }
}</code>
Copier après la connexion

Extension de la conversion :

La solution basée sur une carte permet une extension facile. Par exemple, vous pouvez ajouter des noms de jours de semaine courts de 3 lettres comme entrée valide :

<code class="go">func init() {
    // ... existing initialization code
    for d := time.Sunday; d <= time.Saturday; d++ {
        name := d.String()
        daysOfWeek[name] = d
        daysOfWeek[name[:3]] = d
    }
}</code>
Copier après la connexion

Conclusion :

L'utilisation d'une carte pour la conversion de chaînes de jours de semaine dans Go est à la fois efficace et flexible. Il permet des recherches faciles, une initialisation sûre et une extension simple pour s'adapter à des formats d'entrée alternatifs.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal