我是一名 Golang 初學者,我已經學習了幾天了。我已經學習了大量它的語法并開始適應它。今天我偶然發現了下面 Go 中的一個片段log.Fatal(http.ListenAndServe(":3000", handlers.CORS(originsOk, headersOk,
methodsOk)(router)))具有ListernAndServe以下簽名func ListenAndServe(addr string, handler Handler) error現在令人困惑的部分是Handler上面服務器代碼中的參數。為什么語法像下面這樣劃分 handlers.CORS(originsOk, headersOk, methodsOk)(router)是(router)參數列表的一部分嗎?有人可以分解這個語法讓我理解嗎?
1 回答

撒科打諢
TA貢獻1934條經驗 獲得超2個贊
handlers.CORS
返回一個函數,您正在使用路由器參數調用該函數。然后該函數調用返回一個處理程序,然后該處理程序最終傳遞給 ListenAndServe。
基本上表達式等同于:
f?:=?handlers.CORS(originsOk,?headersOk,?methodsOk) h?:=?f(router) log.Fatal(http.ListenAndServe(":3000",?h))
- 1 回答
- 0 關注
- 156 瀏覽
添加回答
舉報
0/150
提交
取消