Вложение файла.go в файл.go или как сделать imports проще

99 views
Skip to first unread message

Daniil Zelikov

unread,
Sep 1, 2018, 3:01:17 PM9/1/18
to Golang Russian
Здравствуйте. Наверное вопрос не особо по теме.. так как это может относится наверное не только к ЯП GO но все же.. мало ли кто знает, может подскажет?)
В общем с чего все началось. Я использовал easyjson. И когда он мне скомпилировал свой файл он мне вложил его в мой файл. То есть архитектура получилась такая:

main.go
|_ main_easyjson.go

То есть в golanD'е можно ткнуть на файл main.go и он развернется как папка и в нем будет вот этот скомпилированный файл.

В общем в чем собственно вопрос)
Как сделать такое самому?
Как засунуть мой собственный файл в мой собственный файл?

Ну или могу перефразировать вопрос объяснив свою нужду)

Так получилось, что у меня очень много моделей в одном пакете и я их не могу рассовывать по своим собственным пакетам, так как они используют друг друга, по этому из за рекурсивного импорта это становится не возможным.
В каждой модели есть куча методов. Очень много. И мне бы хотелось разбить их на отдельные файлы. Но тогда, так скажем, в папке Models будет просто хаос.

Вот я и подумал, что файл в файле мне бы украсил мою архитектуру позволив разбивать большие файлы на более маленькие.

Буду рад советам. Заранее спасибо)

Daniel Podolsky

unread,
Sep 2, 2018, 6:30:01 AM9/2/18
to gola...@googlegroups.com
> То есть в golanD'е можно ткнуть на файл main.go и он развернется как папка и в нем будет вот этот скомпилированный файл.

тезка, вы переставайте вот это вот употреблять :)

оно разрушит вашу жизнь...

Daniil Zelikov

unread,
Sep 2, 2018, 8:33:05 AM9/2/18
to Golang Russian
не очень понял что именно?) goland? Я че то не догнал))

воскресенье, 2 сентября 2018 г., 13:30:01 UTC+3 пользователь Daniel Podolsky написал:

Alex Lurye

unread,
Sep 2, 2018, 11:12:58 AM9/2/18
to Golang Russian
Вам намекнули, что ваше описание задачи без поллитра понять невозможно.

Что значит "ткнуть"? Что куда должно быть вложено и куда разворачиваться? Какую проблему вы пытаетесь решить?


--
Вы получили это сообщение, поскольку подписаны на группу "Golang Russian".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес golang-ru+...@googlegroups.com.
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

Daniil Zelikov

unread,
Sep 3, 2018, 2:05:18 PM9/3/18
to Golang Russian
эм.. ну вот представляете папку? Дирректорию..  Самую обычную папку в которую можно зайти. Вы на нее "тыкаете" (к примеру двойным щелчком по ней или по "птичке/галочке/плюсику") и она разворачивается показывая в себе содержимое. 

Вот тоже самое только файл.go в файле.go. Блин.. ну как будь то ни кто ни когда не видел :-/

Как бы если бы видели, то вопросов бы таких не было ко мне =)

Я вроде даже структуру нарисовал) на сколько тут это возможно. Могу повторить)

файл.go
|_файл_который_в_файле_выше.go

Ну вроде до безумия и так было понятно)

воскресенье, 2 сентября 2018 г., 18:12:58 UTC+3 пользователь Alex Lurye написал:

Daniel Podolsky

unread,
Sep 3, 2018, 2:14:44 PM9/3/18
to gola...@googlegroups.com
> Вот тоже самое только файл.go в файле.go. Блин.. ну как будь то ни кто ни когда не видел :-/

мы все больше команду cd используем, а не двойной тычок

Daniil Zelikov

unread,
Sep 4, 2018, 3:30:40 AM9/4/18
to Golang Russian
Я безумно рад, что Вы знаете азы консольных команд, но к моему вопросу они ни как не относятся, как и Ваш комментарий

понедельник, 3 сентября 2018 г., 21:14:44 UTC+3 пользователь Daniel Podolsky написал:

Daniil Zelikov

unread,
Sep 4, 2018, 3:35:56 AM9/4/18
to Golang Russian
тут можно файл прикриплять)))) я только сейчас нашел. Вот!! воооот! Выделил даже. Видите? файл гошный в файле находится гошном.
Видели такое?
Такой файл создался при компиляции easyjson автоматически.
Вопрос до безумия прост. КАК ТАКОЕ СДЕЛАТЬ САМОМУ????
Если кто знает, без всяких кривлений и демонстрации своих навыков в другом не относящемся к этому вопросу, подскажите пожалуйста

понедельник, 3 сентября 2018 г., 21:14:44 UTC+3 пользователь Daniel Podolsky написал:
Снимок экрана от 2018-09-04 10-32-05.png

Alex Lurye

unread,
Sep 4, 2018, 3:41:11 AM9/4/18
to Golang Russian
Погуглил, что такое этот Goland - это похоже на JetBrains, и в последнем есть фича https://www.jetbrains.com/help/idea/file-nesting-dialog.html. Он может показывать файлы с похожими именами как будто они друг в друга вложены. Физически файлы никак друг с другом не связаны, разумеется. Это просто IDE их так отображает.

--

Daniil Zelikov

unread,
Sep 4, 2018, 7:15:08 AM9/4/18
to Golang Russian
Да, это так. Но как я не пытался сделать одинаковые или похожие имена, у меня так не получалось. Жаль.. ну мало ли кто глянет, и будет знать ответ. Пусть и внутри редактора, но это очень удобная штука =)
Спасибо всем кто пытался меня понять))

вторник, 4 сентября 2018 г., 10:41:11 UTC+3 пользователь Alex Lurye написал:
Reply all
Reply to author
Forward
0 new messages