第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

不能使用 ResponseErrorWriter 文字作為 GO 中的類型錯(cuò)誤

不能使用 ResponseErrorWriter 文字作為 GO 中的類型錯(cuò)誤

Go
HUX布斯 2022-01-10 16:54:03
在我的GO項(xiàng)目中,我在server.go文件中遇到錯(cuò)誤,mygo/testkit/pkg/http/server pkg\http\server\server.go:24:不能使用 ResponseErrorWriter 文字(類型 ResponseErrorWriter)作為類型賦值中的tigertonic.ErrorWriter:ResponseErrorWriter 沒(méi)有實(shí)現(xiàn)tigertonic.ErrorWriter(缺少WriteError 方法)這是我的init()函數(shù),它給出了server.go.func init() {    tt.ResponseErrorWriter = ResponseErrorWriter{}    tt.SnakeCaseHTTPEquivErrors = false // Ignored in ResponseErrorWriter anyway.}我在這一行得到了錯(cuò)誤,tt.ResponseErrorWriter = ResponseErrorWriter{}這個(gè)錯(cuò)誤的原因是什么?如何解決這個(gè)問(wèn)題?我是這個(gè) GO 框架的新手。
查看完整描述

2 回答

?
狐的傳說(shuō)

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超3個(gè)贊

您的問(wèn)題依賴于原始源代碼中的以下行:


var ResponseErrorWriter ErrorWriter = defaultErrorWriter{}


type ErrorWriter interface {

    WriteError(r *http.Request, w http.ResponseWriter, err error)

    WriteJSONError(w http.ResponseWriter, err error)

    WritePlaintextError(w http.ResponseWriter, err error)

}

分析上面的代碼很明顯,ResponseErrorWriter定義為ErrorWriter這意味著它的類型是一個(gè)自定義類型,它實(shí)現(xiàn)了接口內(nèi)聲明的方法。這意味著您必須實(shí)現(xiàn)聲明為接口的方法。


接口定義了一組方法(方法集),但這些方法不包含代碼:它們沒(méi)有實(shí)現(xiàn)(它們是抽象的)。Go 中的接口是結(jié)構(gòu)和它們需要實(shí)現(xiàn)的方法之間的某種契約。


如果你真的需要實(shí)現(xiàn)你的ErrorWriter接口,你需要聲明你的自定義結(jié)構(gòu),它實(shí)現(xiàn)了原始ErrorWriter接口中定義的方法。然后你需要調(diào)用聲明的方法。你想如何處理錯(cuò)誤這一切都取決于你。


如果您檢查源代碼,您將看到它以下列方式實(shí)現(xiàn):


func (d defaultErrorWriter) WriteError(r *http.Request, w http.ResponseWriter, err error) {

    if acceptJSON(r) {

        d.WriteJSONError(w, err)

    } else {

        d.WritePlaintextError(w, err)

    }

}

唯一剩下的是將局部結(jié)構(gòu)變量定義為:


type defaultErrorWriter struct{}


查看完整回答
反對(duì) 回復(fù) 2022-01-10
?
有只小跳蛙

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超8個(gè)贊

從消息來(lái)看,ResponseErrorWriter不是tigertonic.ErrorWriter。這意味著您尚未創(chuàng)建type ResponseErrorWriter struct實(shí)現(xiàn) interface tigertonic.ErrorWriter,因此您要做的是初始化與預(yù)期接口不匹配的結(jié)構(gòu)。

消息很清楚,您需要實(shí)現(xiàn)該WriteError方法。


查看完整回答
反對(duì) 回復(fù) 2022-01-10
  • 2 回答
  • 0 關(guān)注
  • 215 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)