Клонирование объекта перед вводом в массив также решает проблему.
temp = clone(s);
subscribers.push(temp);
Получить https://www.npmjs.com/package/clone
Вы можете указать имя исполняемого файла, используя ключ -o с go build
. Для вашего примера это будет выглядеть примерно так: cd $GOPATH/github.com/username/go-foobar && go build -o foobar
. Тем не менее, вы просто ушли с исполняемым файлом в папке пакета - вам все равно нужно установить его каким-либо образом.
Однако я не знаю, как указать, что для кого-то, использующего go get github.com/username/go-foobar
для установки вашего инструмента. Например, см. Этот ответ: https://stackoverflow.com/a/33243591/2415176
Если вас не беспокоят люди, устанавливающие ваш инструмент с помощью go get
это то, что вы можете обернуть в Makefile.