Struct 在结构中引用您自己

Struct 在结构中引用您自己,struct,go,Struct,Go,假设我有一个结构类型,如下所示: type Authorization struct { Username string Password string Handler func(http.HandlerFunc) http.HandlerFunc } 我有一系列这些: type Authorizations map[string]*Authorization 我希望能够做到以下几点: var auth = Authorizations{ "test": *

假设我有一个结构类型,如下所示:

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(显然不起作用)是授权类型上的一个方法。语法上正确的方法是什么?

不能在自己的声明中引用值。您需要首先初始化该值,然后才能将要使用的方法分配给处理程序

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

auths := Authorizations{
    "test": testAuth,
}

不能在自己的声明中引用值。您需要首先初始化该值,然后才能将要使用的方法分配给处理程序

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

auths := Authorizations{
    "test": testAuth,
}