Несколько пакетов в одном проекте? - PullRequest
0 голосов
/ 10 ноября 2019

Я бы хотел разделить свой проект go на несколько пакетов, чтобы определенные методы и переменные из каждого пакета были «защищены». Я хотел бы сохранить все в одной папке проекта, чтобы любой, кто может загрузить мой код, нашел его полностью автономным.

Я предполагаю, что проект будет выглядеть примерно так:

root
┗  main package
|   ┗  all corresponding go files
┗  another package
    ┗  all corresponding go files

и затем импортировать второй пакет в мой основной пакет

Кажется, относительные пути импорта считаются плохими, и импорт на основе gopath не кажется лучшим способом сделать это, потому что я не пытаюсьчтобы создавать многократно используемые библиотеки, просто чтобы лучше организовать свой проект.

Правки и дополнения:
Я прочитал "как писать код", но я не видел, как бы я решил свою текущую проблему. Я понимаю, что информация, вероятно, там, и я просто толстый как бы то ни было. Чтобы лучше объяснить мою проблему, я создал пример проекта, который использует мое текущее исправление.

https://gitlab.com/snippets/1911903

У меня есть два пакета "привет" и "основной". Внутри «основного» пакета находится строка «текст» и функция «Hello ()». Я поместил это в отдельный пакет, потому что я не хочу, чтобы строка «текст» была доступна / определена в моем файле main.go. На данный момент я импортирую «привет» в «основной», используя относительный путь импорта. Это то, что, как мне кажется, нужно изменить.

Поскольку они являются частью одного и того же пакета, я бы хотел, чтобы исходный код оставался как можно ближе (поэтому я и не импортировал)через гопата, но, возможно, это то, что я должен делать).

1 Ответ

0 голосов
/ 10 ноября 2019

Мое решение было в конце концов использовать GOPATH, как упомянуто Cerise в комментарии (спасибо):

Использовать GOPATH. Следуйте примеру stringutil в разделе Как написать код Go, где stringutil соответствует вашему привету, а привет - вашему основному. Вы также можете использовать go.mod, как в play.golang.org/p/W6Hgsqyuzug

Похоже, это правильный способ ведения дел.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...