我是一名 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 关注
- 122 浏览
添加回答
举报
0/150
提交
取消