2015-06-17 4 views
0

Допустим, у меня есть тип, это структура, как так:Реферирование себя внутри структуры

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 (который, очевидно, не работает) является метод по типу авторизации. Каков синтаксически правильный способ сделать это?

ответ

4

Вы не можете ссылаться на значение внутри своего собственного объявления. Сначала необходимо инициализировать значение, затем вы можете назначить метод, который хотите использовать для Обработчика.

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

auths := Authorizations{ 
    "test": testAuth, 
} 
Смежные вопросы