gpt4 book ai didi

go - 如何将嵌套结构传递给参数

转载 作者:行者123 更新时间:2023-12-01 22:35:13 25 4
gpt4 key购买 nike

我正在尝试为我的API路由创建一个结构。我有两个结构:查询和路由。然后,我会根据我的路线类型创建一条路线。

创建路由后,我将创建一个新的路由器,并在路由范围内进行迭代,并将方法,路径,处理程序和查询传递给它们。

尝试传递查询时,我不断收到错误消息

不能使用route.Queries([]查询类型)作为参数中的类型字符串...

type Queries struct {
item string
useritem string
key string
userkey string
}


type Route struct {
Method string
Path string
HandleFunc http.HandlerFunc
Queries []Queries
}

var Routes = []Route{
{
Method: "GET",
Path: "/items",
HandleFunc: controllers.Getitems,
Queries: []Queries{{"item", "{useritem}", "key", "{userkey}",},
},
},
}

func CreateRouter() *mux.Router {
router := mux.NewRouter()

for _, route := range Routes {
router.
Methods(route.Method).
Path(route.Path).
Handler(route.HandleFunc).
Queries(route.Queries) //This is where the error occurs
}
return router
}

最佳答案

首先将route.Queries转换为queries []string

然后,您需要解压缩数组作为参数。请改用router.Queries(queries...)

有关此方法的实现,请参见https://github.com/gorilla/mux/blob/master/mux.go#L341

关于go - 如何将嵌套结构传递给参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58788664/

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