GoFrame框架數(shù)據(jù)校驗(yàn)之校驗(yàn)結(jié)果Error接口對(duì)象
上一篇文章介紹了 GoFrame數(shù)據(jù)校驗(yàn)之校驗(yàn)對(duì)象 | 校驗(yàn)結(jié)構(gòu)體 ,得到了大家積極的反饋。
再接再厲,這篇總結(jié)分享:GoFrame數(shù)據(jù)校驗(yàn)之校驗(yàn)結(jié)果總結(jié)分享。
基本介紹
校驗(yàn)結(jié)果為一個(gè)Error接口對(duì)象。當(dāng)數(shù)據(jù)規(guī)則校驗(yàn)成功時(shí),校驗(yàn)方法返回的結(jié)果為nil。
當(dāng)數(shù)據(jù)規(guī)則校驗(yàn)失敗時(shí),返回的該對(duì)象是包含結(jié)構(gòu)化的層級(jí)map,包含多個(gè)字段及其規(guī)則及對(duì)應(yīng)錯(cuò)誤信息,以便于接收端能夠準(zhǔn)確定位錯(cuò)誤規(guī)則。
方法示例
首先我們看一下Error的數(shù)據(jù)結(jié)構(gòu):
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)
}
注意問(wèn)題
可以通過(guò)Maps()方法獲得該原始錯(cuò)誤信息數(shù)據(jù)結(jié)構(gòu)map。
在項(xiàng)目開發(fā)中,我們可以通過(guò)Error接口的其他方法來(lái)獲取特定的錯(cuò)誤信息。
當(dāng)我們并不關(guān)心具體出錯(cuò)的校驗(yàn)規(guī)則時(shí),可以使用String方法,直接返回所有的錯(cuò)誤信息。
方法詳解
獲取校驗(yàn)結(jié)果的值可以通過(guò)多個(gè)校驗(yàn)結(jié)果方法獲?。?/p>
Items()在順序性校驗(yàn)中將會(huì)按照校驗(yàn)規(guī)則返回校驗(yàn)錯(cuò)誤的信息數(shù)組。其順序性只有使用順序校驗(yàn)規(guī)則時(shí)有效,否則返回的結(jié)果是隨機(jī)的。
Map() 會(huì)返回FirstItem中的出錯(cuò)規(guī)則及對(duì)應(yīng)的錯(cuò)誤信息map。
Maps() 會(huì)返回所有的出錯(cuò)鍵名及對(duì)應(yīng)的出錯(cuò)規(guī)則及對(duì)應(yīng)的錯(cuò)誤信息(map[string]map[string]string)。
String() 會(huì)返回所有的錯(cuò)誤信息,構(gòu)成一條字符串返回,多個(gè)規(guī)則錯(cuò)誤信息之間以;符號(hào)連接。其順序性只有使用順序校驗(yàn)規(guī)則時(shí)有效,否則返回的結(jié)果是隨機(jī)的。我們會(huì)比較常用。
Strings 會(huì)返回所有的錯(cuò)誤信息,構(gòu)成[]string類型返回。其順序性只有使用順序校驗(yàn)規(guī)則時(shí)有效,否則返回的結(jié)果是隨機(jī)的。
FirstItem 在有多個(gè)鍵名/屬性校驗(yàn)錯(cuò)誤的時(shí)候,用以獲取出錯(cuò)的第一個(gè)鍵名,以及其對(duì)應(yīng)的出錯(cuò)規(guī)則和錯(cuò)誤信息。其順序性只有使用順序校驗(yàn)規(guī)則時(shí)有效,否則返回的結(jié)果是隨機(jī)的。
FirstRule 會(huì)返回FirstItem中得第一條出錯(cuò)的規(guī)則及錯(cuò)誤信息。其順序性只有使用順序校驗(yàn)規(guī) 則時(shí)有效,否則返回的結(jié)果是隨機(jī)的。
FirstString 會(huì)返回FirstRule中得第一條規(guī)則錯(cuò)誤信息。其順序性只有使用順序校驗(yàn)規(guī)則時(shí)有效,否則返回的結(jié)果是隨機(jī)的。
進(jìn)階
因?yàn)?code>gvalid.Error實(shí)現(xiàn)了Current() error接口,因此可以通過(guò)gerror.Current方法獲取它的第一條錯(cuò)誤信息,這在接口校驗(yàn)失敗時(shí)返回錯(cuò)誤信息非常方便。
注意問(wèn)題
數(shù)據(jù)校驗(yàn)時(shí)存在順序性校驗(yàn)和非順序性校驗(yàn),這會(huì)對(duì)獲取第一條錯(cuò)誤信息的結(jié)果產(chǎn)生影響。
關(guān)于順序與非順序性校驗(yàn),可以關(guān)注我,后面的文章中會(huì)更新說(shuō)明。
總結(jié)
這篇文章為大家介紹了GoFrame gvalid 校驗(yàn)結(jié)果相關(guān)的知識(shí)點(diǎn):
校驗(yàn)結(jié)果為一個(gè)Error接口對(duì)象。當(dāng)數(shù)據(jù)規(guī)則校驗(yàn)成功時(shí),校驗(yàn)方法返回的結(jié)果為nil。
當(dāng)數(shù)據(jù)規(guī)則校驗(yàn)失敗時(shí),返回的該對(duì)象是包含結(jié)構(gòu)化的層級(jí)map,包含多個(gè)字段及其規(guī)則及對(duì)應(yīng)錯(cuò)誤信息,以便于接收端能夠準(zhǔn)確定位錯(cuò)誤規(guī)則。
更多關(guān)于GoFrame數(shù)據(jù)校驗(yàn)Error接口對(duì)象的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- bug解決Failed_to_execute_goal_org.springframework
- Django Rest Framework框架構(gòu)建復(fù)雜API技能詳解
- Android FrameWork之Zygote啟動(dòng)示例詳解
- GoFrame實(shí)現(xiàn)順序性校驗(yàn)示例詳解
- 優(yōu)雅使用GoFrame共享變量Context示例詳解
- GoFrame錯(cuò)誤處理常用方法及錯(cuò)誤碼使用示例
- GoFrame基于性能測(cè)試得知grpool使用場(chǎng)景
- goframe重寫FastAdmin后端實(shí)現(xiàn)實(shí)例詳解
相關(guān)文章
golang中strconv.ParseInt函數(shù)用法示例
這篇文章主要介紹了golang中strconv.ParseInt函數(shù)用法,實(shí)例分析了strconv.ParseInt函數(shù)將字符串轉(zhuǎn)換為數(shù)字的簡(jiǎn)單使用方法,需要的朋友可以參考下2016-07-07
Go語(yǔ)言基礎(chǔ)之網(wǎng)絡(luò)編程全面教程示例
這篇文章主要為大家介紹了Go語(yǔ)言基礎(chǔ)之網(wǎng)絡(luò)編程全面教程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
一文教你打造一個(gè)簡(jiǎn)易的Golang日志庫(kù)
這篇文章主要為大家詳細(xì)介紹了如何使用不超過(guò)130行的代碼,通過(guò)一系列g(shù)olang的特性,來(lái)打造一個(gè)簡(jiǎn)易的golang日志庫(kù),感興趣的小伙伴可以了解一下2023-06-06
Golang并發(fā)繞不開的重要組件之Channel詳解
Channel是一個(gè)提供可接收和發(fā)送特定類型值的用于并發(fā)函數(shù)通信的數(shù)據(jù)類型,也是Golang并發(fā)繞不開的重要組件之一,本文就來(lái)和大家深入聊聊Channel的相關(guān)知識(shí)吧2023-06-06

