Goで曜日文字列をtime.Weekday値に変換する方法?

Barbara Streisand
リリース: 2024-10-30 20:21:03
オリジナル
448 人が閲覧しました

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

曜日文字列を時刻に変換します。曜日値

Go では、曜日を表す文字列を変換する必要がある場合があります。曜日を対応する時間に置き換えます。平日の値。

1 つのアプローチは、次のような配列を使用することです。

<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>
ログイン後にコピー

マップを使用した代替アプローチ

効率を向上させ、検索を容易にするために、マップはより慣用的な選択肢です。

<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>
ログイン後にコピー

追加の解析オプション

マップを使用すると、以下のことが可能になります。サポートされる平日を拡張して省略形を含めるには:

<code class="go">for d := time.Sunday; d <= time.Saturday; d++ {
    name := d.String()
    daysOfWeek[name] = d
    daysOfWeek[name[:3]] = d
}</code>
ログイン後にコピー

これにより、完全な曜日文字列と省略された曜日文字列 (例: "Monday" と "Mon") の両方を解析できるようになります。

以上がGoで曜日文字列をtime.Weekday値に変換する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!