Maison  >  Article  >  développement back-end  >  Comment convertir une chaîne de jour de la semaine en time.Weekday en Go ?

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

Barbara Streisand
Barbara Streisandoriginal
2024-10-31 10:26:02676parcourir

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

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

Dans Go, la conversion d'une chaîne de jour de la semaine en une heure.La valeur du jour de la semaine n'est pas directement prise en charge par le package de temps intégré. Pour résoudre ce problème, les utilisateurs implémentent souvent des fonctions personnalisées pour la conversion.

Fonction personnalisée utilisant un tableau

Une approche consiste à créer un tableau mappant les chaînes du jour de la semaine à l'heure. Valeurs en semaine. Cependant, cette méthode peut s'avérer inefficace en raison de la recherche linéaire requise pour trouver le jour de la semaine correspondant.

Fonction améliorée utilisant la carte

Une solution plus efficace consiste à utiliser une carte au lieu d'un tableau. Cela permet des recherches plus rapides et une mise en œuvre plus simple. En initialisant la carte avec des paires clé-valeur de chaînes de jour de la semaine et leurs valeurs time.Weekday correspondantes, la fonction peut effectuer une recherche directe pour obtenir la valeur time.Weekday souhaitée.

Exemple d'implémentation :

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

Test :

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

Extension pour analyser les noms courts

De plus, la carte L'approche basée sur l'analyse peut être étendue pour analyser les noms courts des jours de la semaine (par exemple, "Lun" pour lundi) en initialisant la carte avec les noms complets et courts.

Conclusion

Utiliser une approche basée sur une carte pour convertir les chaînes de jours de la semaine en heures. Les valeurs des jours de la semaine sont une technique recommandée et idiomatique dans Golang. Il offre des recherches plus rapides et une flexibilité pour gérer les noms de jours de semaine complets et courts.

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!

Déclaration:
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