首頁 > 後端開發 > Golang > 主體

如何在 Go 中將星期幾字串轉換為「time.Weekday」?

Mary-Kate Olsen
發布: 2024-10-31 04:38:30
原創
713 人瀏覽過

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

將星期幾字串轉換為時間。 Weekday

在 Go 中,時間包不提供內建函數來轉換將表示一週中的某一天的字串轉換為 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!