Модули go предназначены для установки в виде исполняемых программ или пакетов?

Можно ли собрать модули Go как исполняемую программу? Или они предназначены для публикации в виде библиотек для повторного использования кода?


person Mutating Algorithm    schedule 01.06.2020    source источник
comment
Оба. Модули Go могут (часто так и есть) содержать main, как в Go определяются исполняемые файлы.   -  person Flimzy    schedule 01.06.2020


Ответы (2)


Создание исполняемого файла и публикация библиотеки не исключают друг друга (обратите внимание, что модули не компилируются, а пакеты компилируются).

Модуль — это набор связанных пакетов Go, версии которых объединены в единое целое.

Модули записывают точные требования к зависимостям и создают воспроизводимые сборки.

https://github.com/golang/go/wiki/Modules#modules

Содержат ли эти пакеты основной пакет или нет, не имеет значения.

person Peter    schedule 01.06.2020
comment
Однако main отличается от других пакетов. Пакет A может зависеть от пакета B. Однако main никогда не может быть B. main всегда находится в корне дерева зависимостей. - person colm.anseo; 03.06.2020

Они предназначены для работы в виде пакетов, таких как то, что вы устанавливаете из NPM для проекта JavaScript или из PIP в проекте Python.

person Jacob    schedule 01.06.2020