曜日文字列を時刻に変換します。曜日値
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 サイトの他の関連記事を参照してください。