曜日文字列を時間に変換します。Weekday
Go では、時間パッケージには変換するための組み込み関数がありません曜日を表す文字列を time.Weekday 値に変換します。したがって、一般的な解決策は、この変換を実行するカスタム関数を作成することです。
1 つのアプローチは、配列を使用して曜日名とそれに対応する time.Weekday 値を保存することです。ただし、より効率的で慣用的な解決策は、マップを利用することです。
変換のためのマップの使用:
マップは、配列と比較して高速かつ直接的な検索を提供します。このアプローチを示すスニペットは次のとおりです。
<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>
マップの安全な初期化:
正しい初期化を保証するには、for ループを使用して daysOfWeek マップを設定できます。
<code class="go">var daysOfWeek = map[string]time.Weekday{} func init() { for d := time.Sunday; d <= time.Saturday; d++ { daysOfWeek[d.String()] = d } }</code>
変換の拡張:
マップベースのソリューションにより、簡単に拡張できます。たとえば、有効な入力として 3 文字の短い曜日名を追加できます:
<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>
結論:
Go で曜日文字列変換にマップを使用することは、効率的かつ柔軟です。これにより、簡単な検索、安全な初期化、および代替入力形式に対応するための簡単な拡張が可能になります。
以上がGoで曜日文字列を「time.Weekday」に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。