php小編小新今天要介紹一款強大的Golang驗證器-自訂枚舉驗證規則。隨著Golang的流行,越來越多的開發者開始使用它來建立高效、可靠的應用程式。而驗證器是其中一個重要的工具,它可以幫助我們驗證輸入的資料是否符合規定的格式和要求。自訂枚舉驗證規則是驗證器的重要功能,它可以幫助我們定義自己的枚舉類型,並對輸入的資料進行驗證。透過本文,我們將詳細介紹如何在Golang中使用自訂枚舉驗證規則,以及一些實際應用場景。讓我們一起來探索這個強大的功能吧!
我正在使用 https://github.com/go-playground/validator,我需要為不同的枚舉值建立自訂驗證規則。這是我的結構 - https://go.dev/play/p/UmR6YH6cvK9。如您所見,我有 3 種不同的使用者類型:管理員、版主和內容創作者,我想為他們調整不同的密碼規則。例如,管理員的密碼長度應至少為 7 個符號,而版主的密碼長度應至少為 5 個。是否可以透過 go-playground/validator 中的標籤來做到這一點?
我的服務取得使用者列表,需要使用不同的規則進行驗證
您可以在usertype
新增一個方法,該方法使用validator
套件來驗證使用者。
type usertype int const ( admin usertype = iota moderator contentcreator ) func (u usertype) validate() error { switch u { case admin: // validate admin case moderator: // validate moderator case contentcreator: // validate content creator default: return fmt.errorf("invalid user type") } return nil }
呼叫 validate 看起來像這樣
func main() { a := User{ Type: Admin, Name: "admin", Password: "pass", LastActivity: time.Time{}, } err := a.Type.Validate() if err != nil { fmt.Println("invalid user: %w", err) } }
以上是Golang 驗證器自訂枚舉驗證規則的詳細內容。更多資訊請關注PHP中文網其他相關文章!