понедельник, 5 апреля 2021 г.

Создание модуля в Golang

Это первая часть учебного пособия, которое знакомит с некоторыми фундаментальными особенностями языка Go. Если вы только начинаете работать с Go, обязательно ознакомьтесь с Быстрое начало с Go, в котором представлены команда go, модули Go и очень простой код Go.

В этом уроке вы создадите два модуля. Первый - это библиотека, которая предназначена для импорта другими библиотеками или приложениями. Второй - это приложение для вызывающего абонента, которое будет использовать первый.

Последовательность этого руководства включает семь кратких тем, каждая из которых иллюстрирует разные части языка.

  • Создание модуля - напишите небольшой модуль с функциями, которые вы можете вызывать из другого модуля.
  • Вызовите свой код из другого модуля - импортируйте и используйте свой новый модуль.
  • Возврат и обработка ошибки - добавьте простую обработку ошибок.
  • Возврат случайного приветствия - обработка данных в срезах (массивы Go с динамическим размером).
  • Возврат приветствия для нескольких людей - храните пары ключ/значение в карте.
  • Добавить тест - используйте встроенные функции модульного тестирования Go для тестирования вашего кода.
  • Скомпилируйте и установите приложение - скомпилируйте и установите код локально.

Предпосылки

  • Некоторый опыт программирования. Код здесь довольно простой, но он помогает кое-что узнать о функциях, циклах и массивах.
  • Инструмент для редактирования вашего кода. Любой текстовый редактор, который у вас есть, будет работать нормально. Большинство текстовых редакторов хорошо поддерживают Go. Наиболее популярными являются VSCode (бесплатно), GoLand (платно) и Vim (бесплатно).
  • Командный терминал. Go хорошо работает с любым терминалом в Linux и Mac, а также в PowerShell или cmd в Windows.

Запустите модуль, который могут использовать другие

Начните с создания модуля Go. В модуле вы собираете один или несколько связанных пакетов для дискретного и полезного набора функций. Например, вы можете создать модуль с пакетами, в которых есть функции для финансового анализа, чтобы другие, пишущие финансовые приложения, могли использовать вашу работу.

Код Go сгруппирован в пакеты, а пакеты сгруппированы в модули. Ваш модуль определяет зависимости, необходимые для запуска вашего кода, включая версию Go и набор других модулей, которые ей требуются.

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

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

В Linux или Mac:

cd

В Windows:

cd %HOMEPATH%

2. Создайте каталог greetings для исходного кода вашего модуля Go.

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

mkdir greetings
cd greetings

3. Запустите свой модуль с помощью команды go mod init.

Запустите команду go mod init, указав ей путь к вашему модулю - здесь используйте example.com/greetings. Если вы публикуете модуль, это должен быть путь, по которому ваш модуль может быть загружен инструментами Go. Это будет репозиторий вашего кода.

$ go mod init example.com/greetings
go: creating new go.mod: module example.com/greetings

Команда go mod init создает файл go.mod для отслеживания зависимостей вашего кода. Пока что файл включает только имя вашего модуля и версию Go, которую поддерживает ваш код. Но по мере добавления зависимостей в файле go.mod будут перечислены версии, от которых зависит ваш код. Это обеспечивает воспроизводимость сборок и дает вам прямой контроль над тем, какие версии модулей использовать.

4. В текстовом редакторе создайте файл для написания кода и назовите его greetings.go.

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

package greetings

import "fmt"

// Hello возвращает приветствие для указанного человека.
func Hello(name string) string {
    // Возвращаем приветствие, включающее имя в сообщение.
    message := fmt.Sprintf("Hi, %v. Welcome!", name)
    return message
}

Это первый код для вашего модуля. Он возвращает приветствие любому вызывающему абоненту, который его запрашивает. На следующем шаге вы напишете код, вызывающий эту функцию.

В этом коде вы:

  • Объявляете пакет greetings для сбора связанных функций.
  • Реализуйте функцию Hello, чтобы вернуть приветствие.
    Эта функция принимает параметр name, тип которого - строка. Функция также возвращает строку. В Go функция, имя которой начинается с заглавной буквы, может быть вызвана функцией из другого пакета. Это известно в Go как экспортируемое имя.
  • Объявляете переменную message для хранения вашего приветствия.
    В Go оператор := - это ярлык для объявления и инициализации переменной в одной строке (Go использует значение справа для определения типа переменной). Пройдя долгий путь, вы могли бы написать это как:

    var message string
    message = fmt.Sprintf("Hi, %v. Welcome!", name)
    

  • Используете функцию Sprintf пакета fmt для создания приветственного сообщения. Первый аргумент - это строка формата, и Sprintf заменяет значение параметра name на команду формата %v. Вставка значения параметра name завершает текст приветствия.
  • Возвращаете отформатированный текст приветствия вызывающему абоненту.

На следующем шаге вы вызовете эту функцию из другого модуля.


Читайте также:


Комментариев нет:

Отправить комментарий