將Weekday 字串轉換為time.Weekday
在Go 中,不直接支援將星期幾字串轉換為time.Weekday值通過內建的時間包。為了解決這個問題,使用者經常實作自訂函數來進行轉換。
使用陣列的自訂函數
一種方法是建立一個數組,將星期幾字串對應到時間。工作日值。然而,由於需要線性搜尋才能找到相應的工作日,此方法可能效率較低。
使用地圖來改善功能
更有效的解決方案是使用地圖而不是陣列。這允許更快的查找和更簡單的實現。透過使用星期字串及其對應的 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中文網其他相關文章!