Выбираем версию для своей операционной системы и скачиваем.
Пользователям Windows нужно запустить установщик. Если вы используете Linux, придется распаковать скачанный архив в /usr/local/go и экспортировать путь /usr/local/go/ bin в переменную среды $PATH . Получиться должна примерно следующая структура папок:
Чтоб убедиться в успешной установке введите команду go version в консоли или терминале:
Установка редактора кода
Go поддерживается в различных редакторах кода (IDE), к примеру:
- Goland
- Visual Studio Code
- vim
Создание проекта
Создадим директорию helloworld . Перейдем в нее и выполним команду:
Должен появиться файл с названием go.mod .
Далее создадим файл main.go и запишем в него следующий код:
Компиляция и запуск программы
Чтобы запустить код, откройте консоль или терминал. Далее перейдите в каталог, где расположен файл main.go и выполните команду:
Результат работы программы будет следующим:
Вы написали первую программу на Go, поздравляем!
Давайте разберем, что здесь происходит:
- Функция main – входная точка программы. С нее основная программа начинается и в ней же завершается.
- println – функция, выводящая текст на экран консоли. Для вызова используется следующий синтаксис: название функции + открывающая круглая скобка + аргументы функции + закрывающая круглая скобка + операторные скобки <> .
- По достижении последней фигурной скобки функции main программа завершается.
Код, листинги которого будут приведены ниже, должны располагаться внутри фигурных (операторных) скобок функции main . В примерах функция main будет опущена для краткости.
Переменные
Переменные в Go характеризуются названием и типом, они должны объявляться до первого использования.
Объявление переменной в Go:
Мы объявили переменную number с типом int . int – тип переменной, которая хранит целое число.
Базовые типы данных:
- bool
- string
- int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 uintptr
- byte // псевдоним для uint8
- rune // псевдоним для int32
- float32 float64
- complex64 complex128
При объявлении переменной устанавливается ее начальное значение. Для int это 0, для float – 0.0, для string – “” (пустая строка), для bool – false .
Если начальное значение переменной известно во время объявления, можно воспользоваться краткой записью:
Чтобы записать значение в переменную после ее объявления, воспользуйтесь оператором=:
Над переменными можно производить операции с помощью операторов. Например, числа можно сравнить, а строки конкатенировать.
Список операторов Go:
Управляющие конструкции
Для управления тем, какие строки кода исполнятся и в каком порядке, существуют специальные конструкции. Давайте перечислим основные:
- Следование
- Условие
- Циклы
Следование
Весь код исполняется последовательно, строка за строкой.
Условие
Для исполнения участка кода в зависимости от условия используется условная конструкция if :
Сообщение не будет выведено на экран, так как условие ложно. На месте условия может использоваться все, результатом чего будет значение типа bool .
Чтобы определить код, который выполнится при невыполнении ни одного условия можно добавить else :
Дополнительно к конструкции управления if имеется конструкция switch , работающая подобным образом:
switch получает значение 200 и ищет case , в котором значения совпадают и выполняет только определенный участок кода.
switch также может использоваться как замена if . Перепишем пример с if :
Роль else здесь играет слово default . Оно также будет выполнено при невыполнении ни одного из условий.
Циклы
Обратите внимание: для повторения участков кода в Go используется только цикл for , который может принимать разные формы:
Этот цикл распечатает значения от 1 до 10.
Если нужен цикл без счетчика, нужно опустить первую и третью части цикла for вместе с точкой запятой:
На каждом повторении цикла будет проверяться заданное условие. Пока условие истинно, цикл будет продолжаться. Как только условие станет ложным, он прервется.
Для бесконечного цикла можно опустить условие:
Чтобы остановить цикл, используется ключевое слово break :
При достижении конструкции break цикл будет завершен.
Внутри цикла также можно использовать специально слово continue . Оно отличается от break тем, что не сразу завершает цикл, а лишь пропускает оставшийся код цикла и начинает новое повторение.
Массивы
Обращение к элементам массива производится по имени массива и индексу элемента. Элементы массива индексируются с нуля.
Заполнение массива значениями:
Если начальное значение массива известно при объявлении, можно воспользоваться литералом объявления массива:
Для избежания лишнего кода воспользуемся кратким объявлением:
Размер массива статичен и не может меняться во время выполнения программы. Для этих целей используются слайсы.
Слайсы
Слайс является более удобной альтернативой массиву. Объявление слайса отличается от объявления массива только отсутствием размера:
Слайс может менять размер во время выполнения программы. Для добавления новых элементов в слайс используется встроенная функция append :
Функции
Для переиспользования часто используемого кода нужны функции.
Функция должна быть объявлена вне функции main :
После ключевого слова func указывается название функции. Далее в круглых скобках аргументы, которые принимает функция. После закрывающей круглой скобки указывается одно или несколько возвращаемых значений функции, а затем следует код функции в операторных скобках.
Функция Sum складывает два числа и возвращает результат:
Функция SumAndDivide возвращает как сумму, так и частное чисел:
Обе функции доступны в функции main:
Пакеты
Писать код большой программы в одном файле неудобно. Тем более переиспользовать этот код нельзя. Поэтому код разбивается на пакеты – наборы файлов с расширением .go и кодом, который можно импортировать и переиспользовать. Стандартная библиотека языка Go содержит много часто используемых и важных пакетов. Например, в пакете strings содержатся функции для работы со строками.
Импорт и использование пакета strings :
Ключевое слово import нужно для импорта используемых пакетов. Чтобы использовать функции из пакета strings , нужно:
- написать название пакета;
- поставить точку;
- вызвать нужную функцию из пакета.
Первое серверное приложение “Hello Web”
В пакете http содержится все необходимое для создания веб-сервера.
Запустите код. Далее откройте браузер и перейдите по адресу http://localhost:9999/ . Вы получите сообщение “Hello Web!”
Функция http.HandleFunc устанавливает функцию HelloWeb , по пути / , а http.ListenAndServe запускает сервер по указанному адресу.
Если вы перейдете по указанному адресу, вызовется функция HelloWeb . Функция принимает два аргумента – сам запрос и переменную, позволяющую ответить на запрос. В строке w.Write([]byte(“Hello Web”)) мы отвечаем на запрос обычной строкой.
Поздравляем, вы написали ваш первый веб-сервер на Go!
Литература
- «Изучаем Go» – Head First, Джек Макгаврен.
- «Язык программирования Go» – Алан А. А. Донован, Брайан У. Керниган.
- «Go на практике» – Батчер Мэтт, Фарина Мэтт.
Онлайн ресурсы
- – официальный сайт.
- https://tour.golang.org/welcome/1 – тур по языку Go.
- https://go.dev/ – оффициальный портал об экосистеме языка.
Go в “Библиотеке Программиста”
- телеграм-канал Библиотека Go-разработчика
- подписывайтесь на тег Go , чтобы получать уведомления о новых постах на сайте
Мы пробежались по основам Go: переменные, операторы, управляющие конструкции, функции.
Ценностями языка являются:
- Простота
- Эффективность
- Надежность
- Продуктивность
- Дружелюбность
Go современный, широко используемый и востребуемый язык программирования, который стоит начать изучать прямо сейчас.
Go используется в Google, Netflix, Facebook, Paypal, Microsoft и во многих других компаниях. Этот язык доступен каждому, но научиться создавать на нем профессиональные, безопасные и масштабируемые сервисы можно только перенимая знания опытных специалистов. Обратите внимание на современный курс «Разработка на Go» образовательной онлайн-платформы GeekBrains, который подойдет новичкам и действующим программистам на других языках. Эксперты из ведущих российских компаний поделятся со слушателями опытом разработки реальных систем на Go. В процессе обучения вы сделаете 5 проектов для портфолио, а после завершения курса получите удостоверение о повышение квалификации и помощь в трудоустройстве.