gpt4 book ai didi

go - 通过值或引用传递 http.ResponseWriter?

转载 作者:IT老高 更新时间:2023-10-28 13:07:04 25 4
gpt4 key购买 nike

假设我有一个向 http.ResponseWriter 添加特定 header 的中心方法。我不想使用 HandleFunc 包装器。

我想知道,我是否会通过引用发送 ResponseWriter。那么,什么是正确的:

addHeaders(&w)

addHeaders(w)

问的不同:

func addHeaders(w *http.ResponseWriter) {...}

func addHeaders(w http.ResponseWriter) {...}

根据我的理解,我认为第一个版本是正确的,因为我不想创建 ResponseWriter 的副本。但是我没有看到任何通过引用传递 ResponseWriter 的代码,不知道为什么。

谢谢!

最佳答案

http.ResponseWriter 是一个接口(interface)。你想传递它的值,因为它内部包含一个指向实际 Writer 的指针。您几乎从不需要指向接口(interface)的指针。

看看标准处理函数的签名是什么:

func(http.ResponseWriter, *http.Request)

请注意 ResponseWriter 不是指针。

关于go - 通过值或引用传递 http.ResponseWriter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22157514/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com