Ревел и голанг импортируют слишком физически?

Только начинается с go/revel. Я скопировал приложение "examples/booking" в каталог "examples/booking2", чтобы можно было с ним справиться, не влияя на оригинал.

Когда я запустил его, я получил странные результаты, в частности, исходные данные в БД, казалось, были дублированы.

Я отследил это до импорта:

import "github.com/revel/examples/booking/app/models"

Как только я изменил "booking" на "booking2", все импортные операции были в порядке. Но моя первая мысль: "Почему путь импорта такой физический?". Я думаю, что в приложении должен быть способ относительно ссылки на различные пакеты приложения без необходимости указывать физический путь, в котором находится приложение.

Есть способ сделать это?

Даже не уверен, что это "пошло" или "упиваться".

Спасибо.

1 ответ

Решение

Путь импорта отображается непосредственно на путь файловой системы, относительно $GOPATH/src/,

https://golang.org/doc/code.html

Кажется, что вы можете сделать относительный импорт следующим образом:

../other-pkg

Но это не идиоматично и не рекомендуется.

Другие вопросы по тегам