Улучшение вашей среды разработки

Рабочая область — одна из новых функций, появившихся в Go 1.18, и в этом посте я покажу, как вы можете ее использовать.

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

Внутри папки рабочей области создайте еще одну папку с именем hello. В этой папке мы создадим небольшую программу.

В папке hello запустите модуль go, выполнив команду go mod init github.com/aprendagolang/hello, и создайте новый файл main.go со следующим содержимым.

Как видите, мы используем внешний пакет с именем strutil. В связи с этим нам необходимо обновить зависимости нашего модуля. Для этого выполните команду go mod tidy. Теперь в каталоге hello есть три файла.

Чтобы убедиться, что с нашей программой все в порядке, запустим команду go run main.go. Хорошо, слово HELLO было напечатано.

Теперь вернемся в папку нашей рабочей области и клонируем пакет strutil.

С пакетом на нашей машине давайте добавим новую функцию с именем Reverse. Цель функции — получить строку и вернуть ее в обратном порядке.

В нашем приветственном приложении мы изменим вызов функции ToUpper на новую функцию Reverse, а затем снова запустим команду go run main.go.

В результате будет такая ошибка:

Ошибка возникает из-за того, что наша программа использует версию пакета, которая есть на GitHub.

Самый простой способ использовать локальную версию пакета — использовать новое рабочее пространство go.

Для этого нам нужно вернуться в папку нашей рабочей области и запустить начальную команду go work init ./hello. В этой команде ./hello — это имя первой папки, которую мы хотим добавить в рабочее пространство go.

Как мы видим, у нас есть новый файл go.work со следующим содержимым:

Просто чтобы убедиться, что теперь у нас есть такая структура папок:

И мы можем запустить нашу программу из папки рабочей области с помощью команды go run github.com/aprendagolang/hello.

Если вы запустите команду, вы увидите, что произошла та же ошибка. Это потому, что нам также нужно добавить папку strutil в нашу рабочую область.

Для этого в папке рабочей области запустите go work use ./strutil. Теперь, если вы заглянете внутрь файла go.work, вы увидите что-то вроде этого.

Теперь, если мы снова попробуем команду go run github.com/aprendagolang/hello, результат будет таким:

Это оно! Если у вас есть какие-либо вопросы, пожалуйста, оставьте комментарий.

Спасибо!