gpt4 book ai didi

go - 如何在 Go 的单独函数中正确使用这些变量?

转载 作者:IT王子 更新时间:2023-10-29 01:38:56 25 4
gpt4 key购买 nike

很抱歉这可能是一个非常初级的问题。

我正在使用 httplistenAndServe,它调用以下函数:

func library(writer http.ResponseWriter, request *http.Request)

该函数中包含的很多代码都适用于其他地方,因此我想将其带出到另一个函数中,例如:

func commonFunction(doThing bool, writer http.ResponseWriter, request *http.Request)

但是,如果我将 library 中的这两个变量传递给它,commonFunction 的函数头是否正确?

我会把它称为 commonFunction(true, writer, request) 吗?

我最困惑的是我是否应该传递指向这些变量的指针? http.Request 不这样做是有意义的,因为它已经是一个指针,但是 http.ResponseWriter 呢,我肯定不想重新创建变量吗?

最佳答案

您的签名看起来不错。许多人在第一次开始使用 Go 进行网络工作时忽略的一个部分是 writer http.ResponseWriter 是一个接口(interface)值。在 Go 中,接口(interface)值是引用类型,这意味着您正在传递的 writer 变量已经在内部包含一个指向满足该接口(interface)的具体值的指针。您可以随意将您的 writer 传递给 commonFunction,它已经是一个引用。

关于go - 如何在 Go 的单独函数中正确使用这些变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40414643/

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