Могу ли я иметь библиотеку и двоичный файл с тем же именем?

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

Например, пустьскажи ям построение реализации Тар. Tar обычно используется в качестве команды, но также может использоваться как библиотека. Интуитивно ясделать что-то вроде этого:

src/
    tar/
        tar.go # belongs to package tar
        main.go # imports tar and provides a main function

Это некажется, работает, хотя. Отдокументация, Кажется, что "команды» должно иметь отдельное имя из библиотеки. Адаптируя приведенный там пример к этому примеру, я имею следующую структуру каталогов:

src/
    tar/
        tar.go # belongs to package tar
    tarbin/
        main.go # imports tar and provides a main function

Тем не менее, это создает команду под названиемtarbinнеtar в$GOPATH/bin, Обходной путь I 'мы нашли, чтобы сделатьgo build -o $GOPATH/bin/tar tar, но я чувствую, что яЯ делаю что-то ужасно неправильно. Есть ли способ лучше?

Примечание: яя хорошо знаю, чтоtar входит в стандартные библиотеки, ям только используя его в качестве примера.

Ответы на вопрос(1)

Ваш ответ на вопрос