• Как правильно использовать импорт в Go?

    mukizu
    @mukizu
    Касательно структуры - можно почитать разные тексты на эту тему и определиться с тем, как поступить грамотнее.

    >почему в реализациях нельзя на него ссылаться?

    А зачем на него там ссылаться? Интерфейс по сути просто описывает условия, которым что-то должно удовлетворять.

    Например в api.go у вас что-то такое:
    type CommonApi interface {
    	Request() error
    }


    api1.go
    import "errors"
    
    type Api struct {}
    
    func (Api) Request() error  {
    	return errors.New("Test")
    }


    А в handler.go нечто вроде:
    import "<path>/api/v1"
    
    func handle(c CommonApi) error{
    	return c.Request()
    }
    
    func main()  {
    	api := v1.Api{}
    	handle(api)
    }


    Всё.
    Ответ написан
    2 комментария