Самоучитель для начинающих как освоить Go с нуля за 30 минут

Самоучитель для начинающих как освоить Go с нуля за 30 минут

Выбираем версию для своей операционной системы и скачиваем.

Пользователям Windows нужно запустить установщик. Если вы используете Linux, придется распаковать скачанный архив в /usr/local/go и экспортировать путь /usr/local/go/ bin в переменную среды $PATH . Получиться должна примерно следующая структура папок:

Самоучитель для начинающих как освоить Go с нуля за 30 минут

Чтоб убедиться в успешной установке введите команду go version в консоли или терминале:

Самоучитель для начинающих как освоить Go с нуля за 30 минут

Установка редактора кода

Go поддерживается в различных редакторах кода (IDE), к примеру:

  • Goland
  • Visual Studio Code
  • vim

Создание проекта

Создадим директорию helloworld . Перейдем в нее и выполним команду:

Должен появиться файл с названием go.mod .

Далее создадим файл main.go и запишем в него следующий код:

Компиляция и запуск программы

Чтобы запустить код, откройте консоль или терминал. Далее перейдите в каталог, где расположен файл main.go и выполните команду:

Результат работы программы будет следующим:

Самоучитель для начинающих как освоить Go с нуля за 30 минут

Вы написали первую программу на 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:

Самоучитель для начинающих как освоить Go с нуля за 30 минут

Управляющие конструкции

Для управления тем, какие строки кода исполнятся и в каком порядке, существуют специальные конструкции. Давайте перечислим основные:

  • Следование
  • Условие
  • Циклы

Следование

Весь код исполняется последовательно, строка за строкой.

Условие

Для исполнения участка кода в зависимости от условия используется условная конструкция 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 проектов для портфолио, а после завершения курса получите удостоверение о повышение квалификации и помощь в трудоустройстве.