日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

GoFrame框架數據校驗之校驗結果Error接口對象_Golang

作者:王中陽Go ? 更新時間: 2022-08-11 編程語言

上一篇文章介紹了 GoFrame數據校驗之校驗對象 | 校驗結構體 ,得到了大家積極的反饋。

再接再厲,這篇總結分享:GoFrame數據校驗之校驗結果總結分享。

基本介紹

校驗結果為一個Error接口對象。當數據規則校驗成功時,校驗方法返回的結果為nil。

當數據規則校驗失敗時,返回的該對象是包含結構化的層級map,包含多個字段及其規則及對應錯誤信息,以便于接收端能夠準確定位錯誤規則。

方法示例

首先我們看一下Error的數據結構:

type Error interface {
    Current() error
    Error() string
    FirstItem() (key string, messages map[string]string)
    FirstRule() (rule string, err string)
    FirstString() (err string)
    Items() (items []map[string]map[string]string)
    Map() map[string]string
    Maps() map[string]map[string]string
    String() string
    Strings() (errs []string) 
} 

注意問題

可以通過Maps()方法獲得該原始錯誤信息數據結構map。

在項目開發中,我們可以通過Error接口的其他方法來獲取特定的錯誤信息。

當我們并不關心具體出錯的校驗規則時,可以使用String方法,直接返回所有的錯誤信息。

方法詳解

獲取校驗結果的值可以通過多個校驗結果方法獲?。?/p>

Items()在順序性校驗中將會按照校驗規則返回校驗錯誤的信息數組。其順序性只有使用順序校驗規則時有效,否則返回的結果是隨機的。

Map()?會返回FirstItem中的出錯規則及對應的錯誤信息map。

Maps()?會返回所有的出錯鍵名及對應的出錯規則及對應的錯誤信息(map[string]map[string]string)。

String()?會返回所有的錯誤信息,構成一條字符串返回,多個規則錯誤信息之間以;符號連接。其順序性只有使用順序校驗規則時有效,否則返回的結果是隨機的。我們會比較常用。

Strings?會返回所有的錯誤信息,構成[]string類型返回。其順序性只有使用順序校驗規則時有效,否則返回的結果是隨機的。

FirstItem?在有多個鍵名/屬性校驗錯誤的時候,用以獲取出錯的第一個鍵名,以及其對應的出錯規則和錯誤信息。其順序性只有使用順序校驗規則時有效,否則返回的結果是隨機的。

FirstRule?會返回FirstItem中得第一條出錯的規則及錯誤信息。其順序性只有使用順序校驗規 則時有效,否則返回的結果是隨機的。

FirstString?會返回FirstRule中得第一條規則錯誤信息。其順序性只有使用順序校驗規則時有效,否則返回的結果是隨機的。

進階

因為gvalid.Error實現了Current() error接口,因此可以通過gerror.Current方法獲取它的第一條錯誤信息,這在接口校驗失敗時返回錯誤信息非常方便。

注意問題

數據校驗時存在順序性校驗和非順序性校驗,這會對獲取第一條錯誤信息的結果產生影響。

關于順序與非順序性校驗,可以關注我,后面的文章中會更新說明。

總結

這篇文章為大家介紹了GoFrame gvalid 校驗結果相關的知識點:

校驗結果為一個Error接口對象。當數據規則校驗成功時,校驗方法返回的結果為nil

當數據規則校驗失敗時,返回的該對象是包含結構化的層級map,包含多個字段及其規則及對應錯誤信息,以便于接收端能夠準確定位錯誤規則。

原文鏈接:https://juejin.cn/post/7110952333193773064

欄目分類
最近更新