Введение в язык GoLang для новичков!
Smart Droid![](/file/1bb443094ff94ed1ff11f.jpg)
Здравствуйте, в этой статье мы познакомимся с базовым синтаксисом языка программирования Go и рассмотрим лучшие ресурсы для его дальнейшего углублённого изучения.
Go — молодой компилируемый многопоточный язык программирования, разработанный Google. Его разработка началась в сентябре 2007 и официально он был представлен уже в 2009 году.
Этот ЯП активно развиваться благодаря тому что его разрабатывают в open-source среде. Язык сразу пришёлся по вкусу многим разработчикам за счёт своей простоты и большого количества высокопроизводительных библиотек.
Go может рассматриваться как попытка создать замену языкам Си и C++ с учётом изменившихся компьютерных технологий и накопленного опыта разработки крупных систем.
В настоящее время Go большими темпами набирает популярность и уже используется многими компаниями. Список некоторых из них:
- Google(ещё бы не использовать своё детище);
- Uber;
- Mozilla;
- Intel;
- Dropbox и ещё множество молодых tech компаний.
Содержание
- Пишем "Hello World"
- Переменные
- Массивы
- Условные конструкции: if else, switch
- Цикл for
- Дальнейшее изучение Go
1. Пишем "Hello World"
«Hello World» - это популярный способ для начала изучения ЯП. Для запуска кода нужно установить SDK. Go SDK можно скачать здесь.
После успешной установки SDK, нам необходимо записать свой первый фрагмент кода в файл с расширением .go и запустить его исполнение в командной строке. Для запуска используют команду: go run file_name.go
Код изображён на картинках, чтоб вы сразу начали писать на Go. Таким образом, те кто будут дублировать код из примеров, смогут быстрее запомнить все описанные ниже конструкции.
![](/file/afeb1de41118e30578d59.png)
Команда fmt.Println() используется для отображения символов в консоли. Буква «P» после fmt. должна быть заглавной и в конце строчки нету точка с запятой!
В дальнейших примерах, для краткости первые три строчки будут скрыты, но вам не стоит их удалять, они нужны для корректного выполнения кода!
2. Переменные
![](/file/444854cf2e62ed5cec8ad.jpg)
Что же подразумевает термин переменная?
Переменная — это именованное хранилище данных которое мы с вами можем определять. В множестве ЯП также реализованы различные механизмы для хранения данных.
Для создания переменной достаточно написать следующую конструкцию:
![](/file/6e60beebd54bb2e21dcc7.jpg)
Для создания переменной достаточно будет написать ключевое слов var (сокращение от англ. variable - переменная) и её имя. Для присвоения переменной конкретного значения (инициализации) используется знак '='. После него можно указать значение. Например: 123, 3.12, false, "string" и т.д.
Хоть Go и является строго типизированным языком, при инициализации переменных их тип указывать не обязательно(неявная типизация).
В примере присвоим переменным базовые типы данных которые предлагает Go:
![](/file/e198bb6fa9b154a89665a.png)
Также для инициализации переменных доступен следующий синтаксис:
![](/file/7eae94ec7f883ab461c53.png)
3. Массивы
![](/file/749458c2674f9bcf6b7f7.jpg)
Массив(англ. array) — это переменная которая может хранить в себе коллекцию из значений/переменных (одного типа) и предоставлять к ним доступ по индексу(номеру элемента в последовательности). Посмотрим, как инициализировать и объявлять массивы в Go:
![](/file/699770fe1f6217feb8365.png)
Индекс — это номер элемента массива, по которому можно получить его значение, а также изменить его. Нумерация элементов начинается с нуля, соответственно первый элемент будет иметь нулевой индекс. Индекс указывают в квадратных скобках после имени массива.
![](/file/273f35a899be7b98c9c90.png)
4. Условные конструкции: if else, switch
Условные конструкции проверяют истинность некоторого логического выражения (a > b, a < b, a == b, a != b и т.д.) и в зависимости от результата проверки (true или false) позволяют направить ход программы по одному из описанных путей.
Конструкция if ... else
Конструкция if принимает условие - логическое выражение(возвращает значение типа bool). При истинности условия, выполняется блок инструкций внутри скобок.
![](/file/3656778f961501b6e7df7.png)
Блок с else добавляется если указанное условие в if являться ложным и необходимо задать альтернативный ход выполнения.
![](/file/774635208d6bf55ed8642.png)
Если необходимо проверить несколько альтернативных вариантов, после блока с оператором if, можно добавить, любое количество операторов else if.
![](/file/696dd7d17eb4d70fda013.png)
Конструкция switch ... case
Конструкция switch проверяет значение выражения внутри круглых скобок. После операторов case определяются значения для сравнения. Если значение в switch совпадает со значением из case, код от знака ':' до следующего case оператора или же закрывающей скобки switch, будет выполнен.
В качестве выражения конструкция switch использует переменную a. Ее значение последовательно сравнивается со значениями после операторов case.
![](/file/22b0598bf4eb18f7125de.png)
Блок default не обязательно указывать, он выполняется если ни один из кейсов не совпал с выражением внутри switch.
5. Цикл for
![](/file/76fa5217d4f00cb6a8cfb.png)
Циклы позволяют в зависимости от определенного условия выполнять некоторые действия множество раз. В Go есть только один цикл - for, который может принимать разные формы. Посмотрим как определить этот цикл:
![](/file/a502f0104245ea91d0dde.png)
Объявление цикла for разбивается на три части:
Первая часть это инициализация счетчика i := 1
. Фактически это объявление переменной, которая будет использоваться лишь внутри цикла. В примере счетчику i присвоили начальное значение 1.
Вторая часть это условие: i < 10
. Пока это условие истинно, то есть выражение (i < 10) == true
, цикл будет продолжаться.
Третья часть это изменение (увеличение/уменьшение) значения счетчика в зависимости от указанного вами действия:
- увеличить i на 1: i++
- уменьшить i на 1: i--
После объявления, внутри кавычек описывается тело цикла. В примере на консоль выводится квадрат числа i.
Цикл из примера сработает только 9 раз, пока значение i не станет равным 10. Каждый отдельный проход цикла по своему телу называется итерацией.
В примере 1 итерация это увеличение значения i на 1.
Также условные конструкции и конструкции циклов могут быть вложенными друг в друга. Рассмотрим пример программы для вывода таблицы умножения:
![](/file/1e8258882f296c57178c5.png)
Перебор массива
Для перебора массивов можно использовать следующую форму цикла for:
for индекс, элемент_по_индексу := range имя_массива { // тело цикла }
![](/file/38fa0c2db42fb81f99238.png)
Оператор continue используется когда при определенных условиях, нужно завершить текущую итерацию цикла и сразу же перейти к следующей итерации. В пример выше, мы не хотим выводить элементы массива со значением "Nibbles", в таком случае стоит воспользоваться continue.
Оператор break следует используется если необходимо полностью выйти из цикла и продолжить выполнение кода после него.
Дальнейшее изучение Go
В этой статье затронуты лишь некоторые основы языка и упущено некоторые детали для простоты изложения. Если вас заинтересовал язык Go, обратите внимание на более подробные материалы, лучше всего язык описан на сайте с официальной документацией golang.org. Также можно найти множество материалов на русском на сайтах golangs.org, metanit.com и т.п.
Более того, в сети доступен интерактивный курс по Go со встроенной в браузер средой выполнения tour.golang.org. Помните что теория гораздо лучше усваивается вместе с практикой. Весёлого вам изучения!
Спасибо за внимание! Надеемся эта статья была вам полезной.