曜日文字列を時刻に変換します。平日
Go では、曜日文字列を時刻に変換します。曜日値は直接サポートされていません。内蔵の時間パッケージによって。これに対処するために、ユーザーは変換用のカスタム関数を実装することがよくあります。
配列を使用したカスタム関数
1 つの方法は、曜日文字列を時刻にマッピングする配列を作成することです。平日の値。ただし、この方法は、対応する曜日を見つけるために線形検索が必要なため、非効率的になる可能性があります。
マップを使用した機能の改善
より効率的な解決策は、マップを使用することです。配列の代わりに。これにより、検索が高速になり、実装がより簡単になります。曜日文字列とそれに対応する time.Weekday 値のキーと値のペアを使用してマップを初期化すると、関数は直接検索を実行して、必要な time.Weekday 値を取得できます。
実装例:
<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">fmt.Println(parseWeekday("Monday")) // Output: Monday <nil> fmt.Println(parseWeekday("Friday")) // Output: Friday <nil> fmt.Println(parseWeekday("Invalid")) // Output: Sunday invalid weekday 'Invalid'</code>
短縮名を解析する拡張機能
さらに、マップベースのアプローチは、完全名と短縮名の両方でマップを初期化することで、短い曜日名 (月曜日の「Mon」など) を解析するように拡張できます。
結論
平日の文字列を時刻に変換するためのマップベースのアプローチの使用。平日の値は、Golang で推奨される慣用的な手法です。これにより、検索が高速化され、曜日の完全名と短縮名の両方を処理できる柔軟性が提供されます。
以上がGo で平日文字列を time.Weekday に変換する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。