1. Введение в Go: установка окружения, базовый синтаксис и управляющие конструкции
Введение в Go: установка окружения, базовый синтаксис и управляющие конструкции
Добро пожаловать в курс «Основы программирования на языке Go». Это первая статья, с которой начнется ваше погружение в один из самых востребованных и эффективных языков программирования современности. Go (или Golang) был разработан в компании Google тремя выдающимися инженерами: Робертом Гризмером, Робом Пайком и Кеном Томпсоном. Их целью было создание языка, который сочетал бы в себе скорость разработки Python и производительность C++.
В этой статье мы пройдем путь от установки языка на ваш компьютер до написания первых работающих программ, изучим переменные и научимся управлять потоком выполнения кода.
Почему Go?
Прежде чем мы начнем писать код, важно понять, почему разработчики выбирают Go:
* Простота. В языке всего 25 ключевых слов. Это позволяет быстро освоить синтаксис и начать писать полезный код. * Производительность. Go — компилируемый язык. Ваш код преобразуется непосредственно в машинные инструкции, что делает программы очень быстрыми. * Статическая типизация. Компилятор помогает находить ошибки еще до запуска программы. * Встроенная конкурентность. Go умеет эффективно выполнять множество задач одновременно (об этом мы поговорим в следующих модулях).
Установка окружения
Чтобы начать программировать, нам нужно установить компилятор Go и настроить рабочее пространство.
Шаг 1: Скачивание и установка
Шаг 2: Проверка установки
После установки откройте терминал (или командную строку) и введите следующую команду:
Если вы видите сообщение, похожее на go version go1.21.0 darwin/arm64 (версия может отличаться), значит, установка прошла успешно.
Ваша первая программа: Hello, World!
Традиционно изучение любого языка начинается с программы, которая выводит приветствие на экран. Давайте разберем структуру программы на Go.
Создайте файл с названием main.go и напишите в нем следующий код:
!Структура базовой программы на Go: пакет, импорты и главная функция
Разбор кода по строкам
package main: Эта строка сообщает компилятору, что данный файл является частью пакета main. Пакет main — особенный; именно он говорит о том, что эта программа будет скомпилирована в исполняемый файл, а не в библиотеку.import "fmt": Команда import подключает внешние пакеты. В данном случае мы подключаем пакет fmt (сокращение от format), который содержит функции для форматирования ввода и вывода текста.func main() { ... }: Это объявление функции. Функция main является точкой входа в программу. Когда вы запускаете приложение, выполнение кода начинается именно отсюда.fmt.Println(...): Мы вызываем функцию Println из пакета fmt, чтобы вывести текст в консоль.Чтобы запустить программу, откройте терминал в папке с файлом и введите:
Переменные и типы данных
Go — язык со строгой статической типизацией. Это означает, что каждая переменная имеет определенный тип, и этот тип не может измениться в процессе выполнения программы.
Объявление переменных
Существует два основных способа создания переменных.
1. Использование ключевого слова var
Этот способ используется, когда мы хотим явно указать тип переменной или объявить её без начального значения (тогда она получит «нулевое значение» для своего типа).
2. Краткое объявление (Short Declaration)
Внутри функций чаще всего используется оператор :=. Он позволяет компилятору самому определить тип переменной на основе присваиваемого значения.
> Важно: Оператор := можно использовать только внутри функций. На уровне пакета (вне функций) всегда нужно использовать var.
Базовые типы данных
В таблице ниже представлены основные типы, с которыми вы будете работать чаще всего:
| Тип | Описание | Пример |
| :--- | :--- | :--- |
| int | Целое число (размер зависит от архитектуры процессора) | 42, -5 |
| float64 | Число с плавающей точкой (двойная точность) | 3.14, 0.001 |
| string | Строка (набор символов) | "Go is great" |
| bool | Логический тип | true, false |
Если мы говорим о математических вычислениях, важно помнить, что операции возможны только между переменными одного типа. Например, нельзя просто так сложить int и float64 без явного приведения типов.
Рассмотрим простую арифметическую операцию:
где — сумма, — первое слагаемое, — второе слагаемое. В Go это будет выглядеть так:
Константы
Константы объявляются с помощью ключевого слова const. Их значение должно быть известно на этапе компиляции и не может быть изменено в процессе работы программы.
Управляющие конструкции
Программа редко бывает линейной. Нам часто нужно выполнять код в зависимости от условий или повторять действия. Для этого в Go существуют управляющие конструкции.
Условный оператор if
Синтаксис if в Go похож на другие C-подобные языки, но имеет важное отличие: условие не нужно заключать в круглые скобки (), но фигурные скобки {} обязательны.
Также if позволяет выполнить короткую инструкцию перед проверкой условия:
Цикл for
В Go есть только один цикл — for. Он универсален и заменяет собой циклы while и do-while из других языков.
Классический цикл for:
Здесь мы видим переменную-счетчик . На каждой итерации происходит проверка условия , и если оно истинно, выполняется тело цикла, а затем операция инкремента . В Go инкремент записывается как i++.
Цикл while (аналог):
Если опустить инициализацию и пост-действие, for превращается в while:
!Логика выполнения цикла for в Go
Оператор switch
switch используется, когда нужно проверить одну переменную на множество значений. Это более чистая альтернатива множеству if-else.
Особенность switch в Go: по умолчанию нет проваливания (fallthrough). Это значит, что после выполнения подходящего case, программа автоматически выходит из switch. Вам не нужно писать break в конце каждого кейса, как в C++ или Java.
Заключение
В этой статье мы заложили фундамент для вашего становления как Go-разработчика. Мы установили окружение, написали первую программу, разобрались с переменными и научились управлять потоком выполнения.
В следующем уроке мы углубимся в более сложные структуры данных: массивы, слайсы и карты, которые делают работу с данными в Go невероятно удобной.
Попробуйте выполнить домашние задания ниже, чтобы закрепить материал!