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

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类型的方法。语法上正确的方法是什么?

最佳答案

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

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

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

关于struct - 在结构内部引用自己,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30903721/

10-10 05:50