亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

應該返回 Handler 的函數如何返回 HandlerFunc?

應該返回 Handler 的函數如何返回 HandlerFunc?

Go
料青山看我應如是 2023-07-04 14:50:48
在鏈接處理程序時,該函數的返回類型為 Handler,但它實際上返回一個 HandlerFunc。這不會引發任何錯誤。如何接受 HandlerFunc 來代替 Handler,前者是函數類型,后者是接口類型?func log(h http.Handler) http.Handler {  return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {    ...  })}
查看完整描述

2 回答

?
守著星空守著你

TA貢獻1799條經驗 獲得超8個贊

HandlerFunc 類型是一個適配器,允許使用普通函數作為 HTTP 處理程序。如果 f 是具有適當簽名的函數,則 HandlerFunc(f) 是調用 f 的 Handler。


這http.Handler是一個接口:


type Handler interface {

    ServeHTTP(ResponseWriter, *Request)

}

這http.HandlerFunc是一個類型:


type HandlerFunc func(ResponseWriter, *Request)


// ServeHTTP calls f(w, r).

func (f HandlerFunc) ServeHTTP(w ResponseWriter, r *Request) {

    f(w, r)

}


查看完整回答
反對 回復 2023-07-04
?
慕田峪7331174

TA貢獻1828條經驗 獲得超13個贊

http.Handler是一個接口。http.HandlerFunc是實現該接口的具體類型。這一切都記錄在http包文檔中。如果您對界面不熟悉,請從A Tour of Go開始。



查看完整回答
反對 回復 2023-07-04
  • 2 回答
  • 0 關注
  • 196 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號