登录
首页 >  Golang >  Go问答

将如何将嵌套结构传递作为参数

来源:stackoverflow

时间:2024-03-06 10:57:27 389浏览 收藏

大家好,今天本人给大家带来文章《将如何将嵌套结构传递作为参数》,文中内容主要涉及到,如果你对Golang方面的知识点感兴趣,那就请各位朋友继续看下去吧~希望能真正帮到你们,谢谢!

问题内容

我正在尝试为我的 api 路由创建一个结构。我有两个结构:查询和路由。然后我有一个基于我的 route 类型的路由片段。

创建路由后,我会创建一个新路由器并迭代路由范围并向它们传递方法、路径、处理程序和查询。

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

无法使用route.queries(类型[]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

好了,本文到此结束,带大家了解了《将如何将嵌套结构传递作为参数》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>