Руководство: Начало работы с Go
В этом руководстве вы получите краткое введение в программирование на Go. По ходу вы:
- Установите Go (если вы ещё этого не сделали).
- Напишете простой код "Hello, world".
- Используете команду
goдля запуска вашего кода. - Используете инструмент поиска пакетов Go, чтобы найти пакеты, которые можно использовать в вашем коде.
- Вызовете функции внешнего модуля.
Предварительные требования
- Некоторый опыт программирования. Код здесь довольно простой, но полезно знать что-то о функциях.
- Инструмент для редактирования кода. Подойдет любой текстовый редактор, который у вас есть. Большинство текстовых редакторов имеют хорошую поддержку Go. Наиболее популярны VSCode (бесплатный), GoLand (платный) и Vim (бесплатный).
- Командный терминал. Go хорошо работает с любым терминалом на Linux и Mac, а также в PowerShell или cmd в Windows.
Установка Go
Просто следуйте шагам в разделе Скачать и установить.
Напишите код
Начните с Hello, World.
-
Откройте командную строку и перейдите в ваш домашний каталог.
На Linux или Mac:
cd
На Windows:
cd %HOMEPATH%
-
Создайте каталог hello для вашего первого исходного кода Go.
Например, используйте следующие команды:
mkdir hello cd hello
-
Включите отслеживание зависимостей для вашего кода.
Когда ваш код импортирует пакеты, содержащиеся в других модулях, вы управляете этими зависимостями через собственный модуль вашего кода. Этот модуль определяется файлом go.mod, который отслеживает модули, предоставляющие эти пакеты. Этот файл go.mod остается с вашим кодом, в том числе в вашем репозитории исходного кода.
Чтобы включить отслеживание зависимостей для вашего кода, создав файл go.mod, выполните команду
go mod init, указав имя модуля, в котором будет находиться ваш код. Это имя является путем модуля.В реальной разработке путь модуля обычно будет расположением репозитория, где будет храниться ваш исходный код. Например, путь модуля может быть
github.com/mymodule. Если вы планируете опубликовать ваш модуль для использования другими, путь модуля должен быть расположением, откуда инструменты Go смогут загрузить ваш модуль. Подробнее о назначении имени модуля с помощью пути модуля см. в разделе Управление зависимостями.Для целей этого руководства просто используйте
example/hello.$ go mod init example/hello go: creating new go.mod: module example/hello
-
В текстовом редакторе создайте файл hello.go, в котором будете писать ваш код.
-
Вставьте следующий код в ваш файл hello.go и сохраните файл.
package main import "fmt" func main() { fmt.Println("Hello, World!") }Это ваш код на Go. В этом коде вы:
-
Объявляете пакет
main(пакет — это способ группировки функций, он состоит из всех файлов в одном каталоге). -
Импортируете популярный
пакет fmt, который содержит функции для форматирования текста, включая вывод в консоль. Этот пакет является одним из пакетов стандартной библиотеки, которую вы получили при установке Go. -
Реализуете функцию
mainдля вывода сообщения в консоль. Функцияmainвыполняется по умолчанию, когда вы запускаете пакетmain.
-
Объявляете пакет
-
Запустите ваш код, чтобы увидеть приветствие.
$ go run . Hello, World!
Команда
go run— это одна из многих командgo, которые вы будете использовать для выполнения задач с Go. Используйте следующую команду, чтобы получить список других:$ go help
Вызов кода из внешнего пакета
Когда вам нужно, чтобы ваш код делал что-то, что могло быть реализовано кем-то другим, вы можете поискать пакет с функциями, которые можно использовать в вашем коде.
-
Сделайте ваше выводимое сообщение немного интереснее с помощью функции из
внешнего модуля.
- Посетите pkg.go.dev и найдите пакет "quote".
-
В результатах поиска найдите и нажмите на v1 пакета
rsc.io/quote(он должен быть указан вместе с "Другими основными версиями"rsc.io/quote/v4). -
В разделе Документация, под Индекс, обратите внимание на
список функций, которые вы можете вызывать из вашего кода. Вы будете использовать
функцию
Go. -
В верхней части этой страницы обратите внимание, что пакет
quoteвключен в модульrsc.io/quote.
Вы можете использовать сайт pkg.go.dev для поиска опубликованных модулей, пакеты которых содержат функции, которые можно использовать в вашем собственном коде. Пакеты публикуются в модулях — таких как
rsc.io/quote— где другие могут их использовать. Модули улучшаются с выходом новых версий со временем, и вы можете обновить ваш код для использования улучшенных версий. -
В вашем коде Go импортируйте пакет
rsc.io/quoteи добавьте вызов его функцииGo.После добавления выделенных строк ваш код должен включать следующее:
package main import "fmt" <ins>import "rsc.io/quote"</ins> func main() { <ins>fmt.Println(quote.Go())</ins> } -
Добавьте новые требования к модулю и контрольные суммы.
Go добавит модуль
quoteв качестве требования, а также файл go.sum для использования при аутентификации модуля. Подробнее см. в разделе Аутентификация модулей в справочнике по модулям Go.$ go mod tidy go: finding module for package rsc.io/quote go: found rsc.io/quote in rsc.io/quote v1.5.2
-
Запустите ваш код, чтобы увидеть сообщение, сгенерированное функцией, которую вы вызываете.
$ go run . Don't communicate by sharing memory, share memory by communicating.
Обратите внимание, что ваш код вызывает функцию
Go, выводя остроумное сообщение о коммуникации.Когда вы запустили
go mod tidy, она нашла и загрузила модульrsc.io/quote, содержащий пакет, который вы импортировали. По умолчанию она загрузила последнюю версию — v1.5.2.
Напишите больше кода
С помощью этого краткого введения вы установили Go и изучили некоторые из основ. Чтобы написать больше кода с другим руководством, ознакомьтесь с Создание модуля Go.