You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Go语言中http.HandleFunc传入Handler函数的参数疑问

关于Go中http.HandleFunc传递处理函数的疑问解答

你这里其实是把函数本身作为参数传给http.HandleFunc,而不是调用这个函数——这是Go里的「函数值」用法,只要你的函数符合http.HandlerFunc类型的定义(也就是func(http.ResponseWriter, *http.Request)),就能直接传进去,不需要提前传参数。

至于w和r这两个参数:

  • 它们是由Go的net/http包底层的HTTP服务器逻辑来填充的
  • 当服务器接收到匹配/view/路径的HTTP请求时,服务器会自动创建:
    • w:一个实现了http.ResponseWriter接口的对象,用来向客户端发送响应内容
    • r:包含当前请求所有信息(比如URL、请求头、请求体等)的*http.Request对象
  • 之后服务器会调用你注册的viewHandler,把这两个对象作为参数传进去执行。

简单来说,你是把处理请求的「逻辑模板」交给服务器,当有请求进来时,服务器会自动把请求相关的上下文数据(w和r)递给这个模板,让它完成具体的响应处理。

内容的提问来源于stack exchange,提问作者Ariel Marcelo Pardo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 22:14:54