假设我有一个中心方法,它为http.ResponseWriter添加一个特定的头.我不想使用HandleFunc包装器.
我想知道,我是否通过引用发送ResponseWriter.那么,什么是正确的:
addHeaders(&w)
Run Code Online (Sandbox Code Playgroud)
要么
addHeaders(w)
Run Code Online (Sandbox Code Playgroud)
问的不同:
func addHeaders(w *http.ResponseWriter) {...}
Run Code Online (Sandbox Code Playgroud)
要么
func addHeaders(w http.ResponseWriter) {...}
Run Code Online (Sandbox Code Playgroud)
根据我的理解,我会说第一个版本是正确的,因为我不想创建ResponseWriter的副本.但我还没有看到任何代码,其中ResponseWriter通过引用传递,并想知道为什么.
谢谢!
Jim*_*imB 18
http.ResponseWriter是一个界面.您希望传递其值,因为它在内部包含指向实际Writer的指针.你几乎不想要一个指向接口的指针.
看看标准处理程序func的签名是什么:
func(http.ResponseWriter, *http.Request)
Run Code Online (Sandbox Code Playgroud)
请注意,ResponseWriter不是指针.
| 归档时间: |
|
| 查看次数: |
1580 次 |
| 最近记录: |