Привет,
Собственно, такой вот вопрос, как сделать subj ?
Дано: несколько бэкендов (https, http) каждый в своем sub-package.
Чего хочется: что бы при импорте каждый пакет «регистрировался» в главном пакете. Т.е. хочется на верхнем уровне иметь массив структур с описанием каждого пакета, который бы заполнялся автоматически.
Думал над вариантом с init
, но так нельзя сделать, потому что получается циклическая зависимость (а Go в них не умеет).
Примеры кода:backend/http/http.go
package http
import "root"
var info = root.Info{Name: "http"}
func init() {
root.RegisterBackend(&info)
}
root.go
package root
import "backend/http"
func RegisterBackend(backend *Info) {
...
}
И вот тут как раз и циклическая зависимость ...
И главный вопрос - как быть ? :)