Упражнение. Hello World
В этом разделе показано, как написать программу Go, которая выводит сообщение на экран. Это обычное начальное упражнение при изучении любого языка программирования. Вы познакомитесь с интерфейсом командной строки (CLI) Go, а также с процессом создания и запуска приложения Go.
Настройка среды IDE для открытия из CLI
Вы можете открыть IDE Visual Studio Code из командной строки CLI и начать редактировать файлы в текущей рабочей области. Эта функция IDE реализуется с помощью системной переменной среды $PATH (или $Path). Если эта функция включена, с помощью команды code .
в CLI можно открыть IDE и изменить файлы в текущем каталоге.
В некоторых случаях при установке Visual Studio Code поддерживается возможность добавить путь к CLI в переменную среды $PATH. Вероятно, вы видели этот вариант при установке. Если этот параметр уже настроен, значит у вас все готово. В противном случае, чтобы использовать эту возможность, вам нужно сделать следующее.
Linux и macOS
Чтобы зарегистрировать CLI Visual Studio Code в переменной среды $PATH, сделайте следующее:
Откройте Visual Studio Code.
В меню Вид выберите Палитра команд.
В поле поиска введите фразу shell command. По мере ввода результаты будут фильтроваться.
Выберите команду Shell Command: Install 'code' command in PATH (Команда оболочки: установка команды code в PATH).
Закройте окно командной строки или терминала.
Внимание
Если у вас открыта командная строка, используемая в предыдущем упражнении, закройте ее и откройте новое окно командной строки. Так новое значение переменной $PATH вступит в силу.
Закройте Visual Studio Code.
Windows
Чтобы добавить расположение CLI Visual Studio Code в системную переменную среды $Path, сделайте следующее.
Примечание.
Если вы работали с переменными среды и знаете, как добавить новое расположение в системную переменную $Path, используйте удобный для вас метод. Ниже приведена довольно длинная процедура, но это проверенный метод, гарантирующий правильное обновление переменной.
Откройте панель управления Windows.
Выберите "Система" и выберите "Дополнительные параметры системы".
В диалоговом окне Свойства системы в разделе Дополнительно щелкните Переменные среды. Откроется диалоговое окно Изменение переменных среды.
В диалоговом окне Изменение переменных среды отобразится два списка:
- "Переменные среды пользователя для <имя_пользователя>" — определения переменных среды для определенного пользователя.
- "Системные переменные" — определения системных переменных для всех пользователей.
В этой процедуре используются системные переменные.
В диалоговом окне Переменные среды прокрутите список Системные переменные вниз до переменной Path.
Выберите переменную Path, чтобы выделить строку. Выберите Изменить. Откроется диалоговое окно Изменение переменных среды. В этом диалоговом окне перечислены все расположения папок, определенные в переменной.
В диалоговом окне Изменение переменных среды выберите Создать. В конце списка появится пустая строка.
В пустой строке укажите расположение исполняемого файла CLI Visual Studio Code. Замените
<user-name>
именем пользователя.C:\Users\<user-name>\AppData\Local\Programs\Microsoft VS Code\bin
Нажмите кнопку ОК, чтобы закрыть все диалоговые окна.
Закройте диалоговое окно Свойства системы и панель управления Windows.
Шаг 1. Открытие рабочей области Go и среды IDE
Убедившись в CLI, что редактор Visual Studio Code готов к использованию, вы можете открыть рабочую область Go.
Откройте новое окно командной строки или терминала.
Откройте каталог рабочей области Go, выполнив следующую команду:
cd $GOPATH/src
cd %GOPATH%/src
Чтобы открыть Visual Studio Code из рабочей области, используйте следующую команду:
code .
Запуститься Visual Studio Code. Слева отобразится представление Проводник, а справа — страница Приветствие.
В представлении Проводник должен быть открыт (развернут) раздел SRC проекта Go. Этот раздел представляет собой папку /src вашего проекта. Сейчас эта папка пуста, но мы добавим в нее некоторое содержимое, как описано в следующем шаге.
Шаг 2. Создание папки и файла Go
Давайте добавим папку и файл в проект Go. Создавать новые элементы в Visual Studio Code можно несколькими способами.
- Действия в меню панели инструментов:
- Выберите Файл>Открыть папку и нажмите кнопку Новая папка.
- Выберите Файл>Новый файл и откройте новый файл.
- Ссылки на странице Приветствие, аналогичные действиям в меню панели инструментов.
- Значки в представлении обозревателя справа от раздела SRC :
- Щелкните значок Новая папка. В текстовое поле введите имя папки и нажмите клавишу ВВОД.
- Щелкните значок Новый файл. В текстовое поле введите имя файла и нажмите клавишу ВВОД.
В Visual Studio Code сделайте следующее. Чтобы создать файл и папку, используйте удобный для вас метод.
Создайте новую папку с именем helloworld.
Создайте новый файл с именем main.go для кода приложения.
Разверните представление Проводник>SRC, чтобы отобразить дерево структуры папок. Они должны выглядеть так, как показано в этом примере:
SRC/
helloworld/
main.go
Установка средств расширения Go
Если main.go является первым файлом Go, который вы открываете в Visual Studio Code, вам может быть предложено установить другие средства для расширения Go. Когда появится запрос, выберите Установить. В нижней части окна IDE откроется терминал для вывода выходных данных процесса. Должен отобразиться результат как в следующем примере:
Tools environment: GOPATH=C:\Projects\Go
Installing 5 tools at C:\Projects\Go\bin in module mode.
Installing github.com/uudashr/gopkgs/v2/cmd/gopkgs (C:\Projects\Go\bin\gopkgs.exe) SUCCEEDED
В процессе установки проверьте строку состояния в Visual Studio Code. Если в правом нижнем углу отображается сообщение, например "Установлены не все средства", щелкните это сообщение. Во всплывающем окне выберите Установить.
Когда установка успешно завершится, в выходных данных в терминале отобразится сводка:
All tools successfully installed. You are ready to Go :).
Шаг 3. Добавление кода в файл Go
Теперь давайте добавим код в файл Go.
Добавьте в файл main.go следующий код:
package main import "fmt" func main() { fmt.Println("Hello World!") }
Сохраните файл.
Не беспокойтесь о форматировании кода, включая символы табуляции и пробелы. Visual Studio Code автоматически форматирует код при каждом сохранении файла.
Шаг 4. Выполнение программы Go
Программу Go можно выполнить в командной строке, командной строке терминала или терминале, который выполняется в Visual Studio Code.
Для выполнения программы можно использовать то же окно командной строки или новое. Если вы решили открыть новое окно командной строки, обязательно измените расположение каталога, указав каталог для рабочей области Go. Также не забудьте запустить программу из папки, в которой находится файл Go: $GOPATH/src/helloworld.
Открытие терминала в Visual Studio Code
Если вы хотите запустить программу из Visual Studio Code, а не из отдельной командной строки или терминала, сделайте следующее:
В Visual Studio Code щелкните вкладку Терминал и выберите Создать терминал.
В раскрывающемся списке в правом верхнем углу окна терминала выберите Новая командная строка.
В окне терминала выполните следующую команду, чтобы изменить расположение каталога, указав каталог рабочей области Go и папку с файлом Go:
cd $GOPATH/src/helloworld
cd %GOPATH%/src/helloworld
Запуск приложения Go
Чтобы запустить приложение Go, выполните следующую команду в окне терминала или в командной строке:
go run main.go
Должен появиться следующий результат:
Hello World!
Команда go run
выполняет две задачи: она компилирует приложение и, если компиляция прошла успешно, выполняет приложение.
Создание исполняемого файла
Чтобы создать исполняемый файл для программы, используйте следующую команду:
go build main.go
Когда выполнение команды go build
завершится, будет создано исполняемое приложение, которое можно запустить в любое время без дополнительной обработки. Команда только создает исполняемый файл. Она не запускает программу, как команда go run
.
Проверка содержимого /src
Вот как должна выглядеть структура проекта в представлении Проводник>SRC:
SRC/
helloworld/
main
main.go
В представлении Проводник имя исполняемого файла без расширения указывает на исполняемый файл, который можно использовать для запуска программы. (По факту, в Windows этот файл имеет расширение .exe.) При разработке используйте команду go run
. Для создания двоичных файлов приложения следует использовать команду go build
и развертывать двоичный исполняемый файл в соответствующей среде.
Изучение кода приложения Go
Вы создали свое первое приложение на Go, выполнили его компиляцию и запуск. Давайте проанализируем код построчно.
Начнем с первой инструкции в файле Go:
package main
Инструкция package main
указывает Go, что создаваемое приложение является исполняемой программой (файлом, который можно запустить). Приложение "Hello World!" входит в состав пакета main
. Пакет — это набор общих файлов исходного кода. Данная строка есть в каждом исполняемом приложении, даже если у проекта или файла другое имя.
Мы рассмотрим эти понятия более подробно в следующем модуле. Пока же запомните, что каждая исполняемая программа должна входить в пакет main
.
Задание. Измените имя пакета
Давайте проверим, насколько важен пакет main
.
- В файле Go измените имя пакета в первой строке.
- Сохраните файл и снова запустите программу в окне терминала.
Что происходит? Выводится ли сообщение "Hello World!"? Создается ли двоичный исполняемый файл?
Показать ответ
"Hello World!" не отображается. Не создается двоичный исполняемый файл. Появится сообщение об ошибке: go run: cannot run non-main package (выполнить запуск: нельзя запустить не основной пакет). Почему? Каждая исполняемая программа должна входить в состав основного пакета.
Вот следующая строка в файле Go:
import "fmt"
Инструкция import
предоставляет программе доступ к коду в других пакетах. В нашем случае fmt — это пакет стандартной библиотеки. Сведения о пакете fmt см. на сайте официальной документации по языку Go.
Инструкция import
требуется, так как далее в программе используется функция из этого пакета для вывода сообщения на экран. В программу можно включать столько инструкций import
, сколько необходимо. Но в языке Go есть характерная особенность. Если вы импортируете пакет, но не используете соответствующую функцию из него, приложение не скомпилируется. В Visual Studio Code есть очень удобная функция — неиспользуемые в программе импортируемые пакеты удаляются автоматически при сохранении файла.
Был ли оператор import удален при сохранении файла в Visual Studio Code? Попробуйте отредактировать не в Visual Studio Code, а затем запустить приложение. Каков результат?
Задание. Добавьте еще одну инструкцию импорта
Давайте проверим, что вы узнали о неиспользуемых импортируемых пакетах.
- Восстановите исходный код в файле Go.
- Добавьте еще одну инструкцию импорта, например
math
илиio
. - Сохраните файл и снова запустите программу в окне терминала.
Что происходит? Удаляет ли Visual Studio Code неиспользуемый пакет импорта? Если да, то когда?
- Измените файл Go снова, но не с помощью Visual Studio Code.
- Сохраните файл и запустите программу в новой командной строке.
Что происходит? Каков результат?
Показать ответ
Если изменить файл Go в интегрированной среде разработки, то при сохранении файла Visual Studio Code обнаружит неиспользуемые пакеты и удалит соответствующие инструкции import. При изменении файла Go за пределами Visual Studio Code происходит сбой кода. При этом должно отображаться сообщение об ошибке такого рода: # command-line-arguments .\main.go:5:2: импортирован, но не используется: "math".
Рассмотрим блок кода в файле Go.
func main() {
fmt.Println("Hello World!")
}
Оператор func
— это зарезервированное слово, которое используется для объявления функции. Первая функция называется main, так как это начальная точка нашей программы. В пакете package main
(определенном в первой строке) может быть только одна функция main()
. В функции main()
вы вызывали функцию Println
из пакета fmt
и отправили текстовое сообщение, которое должно отображаться на экране.
Есть еще много возможностей, которые мы рассмотрим в следующем модуле.