Руководство: Начало работы с Go

В этом руководстве вы получите краткое введение в программирование на Go. По ходу вы:

Предварительные требования

Установка Go

Просто следуйте шагам в разделе Скачать и установить.

Напишите код

Начните с Hello, World.

  1. Откройте командную строку и перейдите в ваш домашний каталог.

    На Linux или Mac:

    cd
    

    На Windows:

    cd %HOMEPATH%
    
  2. Создайте каталог hello для вашего первого исходного кода Go.

    Например, используйте следующие команды:

    mkdir hello
    cd hello
    
  3. Включите отслеживание зависимостей для вашего кода.

    Когда ваш код импортирует пакеты, содержащиеся в других модулях, вы управляете этими зависимостями через собственный модуль вашего кода. Этот модуль определяется файлом 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
    
  4. В текстовом редакторе создайте файл hello.go, в котором будете писать ваш код.

  5. Вставьте следующий код в ваш файл hello.go и сохраните файл.

    package main
    import "fmt"
    func main() {
      fmt.Println("Hello, World!")
    }
    

    Это ваш код на Go. В этом коде вы:

    • Объявляете пакет main (пакет — это способ группировки функций, он состоит из всех файлов в одном каталоге).
    • Импортируете популярный пакет fmt, который содержит функции для форматирования текста, включая вывод в консоль. Этот пакет является одним из пакетов стандартной библиотеки, которую вы получили при установке Go.
    • Реализуете функцию main для вывода сообщения в консоль. Функция main выполняется по умолчанию, когда вы запускаете пакет main.
  6. Запустите ваш код, чтобы увидеть приветствие.

    $ go run .
    Hello, World!
    

    Команда go run — это одна из многих команд go, которые вы будете использовать для выполнения задач с Go. Используйте следующую команду, чтобы получить список других:

    $ go help
    

Вызов кода из внешнего пакета

Когда вам нужно, чтобы ваш код делал что-то, что могло быть реализовано кем-то другим, вы можете поискать пакет с функциями, которые можно использовать в вашем коде.

  1. Сделайте ваше выводимое сообщение немного интереснее с помощью функции из внешнего модуля.
    1. Посетите pkg.go.dev и найдите пакет "quote".
    2. В результатах поиска найдите и нажмите на v1 пакета rsc.io/quote (он должен быть указан вместе с "Другими основными версиями" rsc.io/quote/v4).
    3. В разделе Документация, под Индекс, обратите внимание на список функций, которые вы можете вызывать из вашего кода. Вы будете использовать функцию Go.
    4. В верхней части этой страницы обратите внимание, что пакет quote включен в модуль rsc.io/quote.

    Вы можете использовать сайт pkg.go.dev для поиска опубликованных модулей, пакеты которых содержат функции, которые можно использовать в вашем собственном коде. Пакеты публикуются в модулях — таких как rsc.io/quote — где другие могут их использовать. Модули улучшаются с выходом новых версий со временем, и вы можете обновить ваш код для использования улучшенных версий.

  2. В вашем коде Go импортируйте пакет rsc.io/quote и добавьте вызов его функции Go.

    После добавления выделенных строк ваш код должен включать следующее:

    package main
    import "fmt"
    <ins>import "rsc.io/quote"</ins>
    func main() {
      <ins>fmt.Println(quote.Go())</ins>
    }
    
  3. Добавьте новые требования к модулю и контрольные суммы.

    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
    
  4. Запустите ваш код, чтобы увидеть сообщение, сгенерированное функцией, которую вы вызываете.
    $ go run .
    Don't communicate by sharing memory, share memory by communicating.
    

    Обратите внимание, что ваш код вызывает функцию Go, выводя остроумное сообщение о коммуникации.

    Когда вы запустили go mod tidy, она нашла и загрузила модуль rsc.io/quote, содержащий пакет, который вы импортировали. По умолчанию она загрузила последнюю версию — v1.5.2.

Напишите больше кода

С помощью этого краткого введения вы установили Go и изучили некоторые из основ. Чтобы написать больше кода с другим руководством, ознакомьтесь с Создание модуля Go.

GoRu.dev Golang на русском

На сайте представлена адаптированная под русский язык документация языка программирования Golang