2 回答

TA貢獻(xiàn)1811條經(jīng)驗 獲得超5個贊
您不是從 main 中“調(diào)用”該函數(shù),而是將其作為參數(shù)提供給HandleFunc
,將其注冊為在mux.Router
. 這種提供稍后調(diào)用的函數(shù)的模式通常稱為“回調(diào)”。
你的ParseSlash
功能是類型http.HandlerFunc
type HandlerFunc func(ResponseWriter, *Request)
您的函數(shù)最終由http.Server
via 其ServeHTTP
方法(此處為通過mux.Router
)調(diào)用,并傳遞顯示的參數(shù)。調(diào)用該函數(shù)時,http.ResponseWriter
和*http.Request
參數(shù)用于正在處理的單個 http 請求。

TA貢獻(xiàn)1942條經(jīng)驗 獲得超3個贊
這是一個簡單的回調(diào)。當(dāng)您想在將來調(diào)用某個函數(shù)時需要它,但現(xiàn)在您沒有足夠的信息來執(zhí)行它???- http.ListenAndServe 創(chuàng)建一個服務(wù)器并等待客戶端。
您不能調(diào)用函數(shù) ParseSlash,因為它在客戶端連接并發(fā)送地址“/”之后才有意義。當(dāng)它發(fā)生時,路由器將有足夠的信息使用參數(shù) http.ResponseWriter 和 *http.Request 調(diào)用您的代碼。
現(xiàn)在您應(yīng)該了解閉包的工作原理 - https://tour.golang.org/moretypes/25。您將完成讓我們返回 http 服務(wù)器https://www.nicolasmerouze.com/middlewares-golang-best-practices-examples/。
- 2 回答
- 0 關(guān)注
- 232 瀏覽
添加回答
舉報