【问题标题】:Referencing yourself inside of a struct在结构中引用自己
【发布时间】:2015-06-18 07:20:42
【问题描述】:

假设我有一个像这样的结构类型:

type Authorization struct {
    Username string
    Password string
    Handler  func(http.HandlerFunc) http.HandlerFunc
}

我有一个数组:

type Authorizations map[string]*Authorization

我希望能够做这样的事情:

var auth = Authorizations{
    "test": *Authorization{
        "someusername",
        "somepassword",
        self.BasicAuth,
    },
}

假设 self.BasicAuth(显然不起作用)是 Authorization 类型的方法。执行此操作的语法正确方法是什么?

【问题讨论】:

    标签: struct go


    【解决方案1】:

    你不能在它自己的声明中引用一个值。需要先初始化值,然后再将要使用的方法赋值给Handler。

    testAuth := &Authorization{
        Username: "someusername",
        Password: "somepassword",
    }
    testAuth.Handler = testAuth.HandleFunc
    
    auths := Authorizations{
        "test": testAuth,
    }
    

    【讨论】:

      猜你喜欢
      • 2019-12-30
      • 2012-08-14
      • 2018-10-19
      • 1970-01-01
      • 2023-02-05
      • 1970-01-01
      • 2016-12-23
      • 2021-12-27
      • 1970-01-01
      相关资源
      最近更新 更多