好的,我有一个主包和一个http处理程序包。本质上,我想做的是设置一个全局结构,以便我可以随时调用该结构中的信息。
下面是我尝试的示例的基本概述:主程序包导入处理程序函数主程序包调用handlerfunc Handlerfunc将http.ResponseWriter和其他项设置为UrlInfo结构Handlerfunc在函数中传递(不必将UrlStruct传递到函数中)Run函数(在此示例中为home)函数home可以随时调用变量uinfo导致其指针UrlInfo结构
显然这是行不通的,但这本质上是我想这样做的方式,因此我不必将所有这些信息传递到我的home函数中。保持清洁和简单。
任何想法都值得欢迎。谢谢。
处理程序包
package handler
// Struct containing http requests and variables
type UrlInfo struct {
Res http.ResponseWriter
Req *http.Request
Item string
}
func HandleFunc(handlepath string, runfunc func()) {
// Set handler and setup struct
http.HandleFunc(handlepath, func(w http.ResponseWriter, r *http.Request) {
url := new(UrlInfo)
url.Res = w
url.Req = r
url.Item = "Item information"
runfunc()
})
}
主包装
import "handler"
var uinfo = &handler.UrlInfo{}
func init() {
handler.HandleFunc("/home/", home)
}
func home() {
fmt.Println(uinfo.Item)
}
幕布斯7119047
相关分类