# Go - Полный курс по Go (GoLang)

Освойте язык Go с нуля: переменные, функции, структуры, maps, интерфейсы, goroutines и работа с ошибками

Rating: 4.8 out of 54.8 [(238 ratings)](https://www.udemy.com/course/go-golang-ru/#reviews)

851 students

Created by [Bogdan Stashchuk \| 300K Students Worldwide \| MBA, PhD](https://www.udemy.com/user/bogdanstashchuk/)

Last updated 3/2026

## What you'll learn

- Научитесь устанавливать Go, настраивать VS Code и писать первые программы, компилируя и форматируя код по лучшим практикам Go
- Разберётесь в переменных, константах и типах, научитесь использовать Printf, понимать статическую типизацию и значения по умолчанию
- Освоите функции, массивы, срезы, карты, структуры, интерфейсы и указатели, включая замыкания, методы и передачу по ссылке
- Научитесь обрабатывать ошибки, использовать panic и recover, писать конкурентный код с goroutines, каналами и группами ожидания

## Course content

### Введение в курс по Go
- Добро пожаловать на курс по Go
- Присоединяйтесь к сообществу единомышленников
- Как использовать файлы проектов
- ВАЖНО - Скачайте файлы проектов для курса

### Инсталляция Go и команды Go
- Введение
- Инсталляция Go
- Команды Go
- Установка редактора кода Visual Studio Code
- Настройка редактора кода для Go

### Основы Go
- Введение
- Функция main и пакет main
- Пакет fmt и функция Println
- Компиляция программ Go
- Форматирование кода Go
- Внешние пакеты для приложений Go
- Создание модуля и использование внешних пакетов
- Подведение итогов по первой программе на Go

### Переменные и базовые типы
- Введение
- Подготовка к обсуждению переменных в Go
- Объявление и присвоение значений переменным
- Добавление другого файла с функцией main
- Устранение ошибки, связанной с несколькими функциями main
- Разные варианты объявления переменных
- Использование Printf для форматирования строк
- Определение типа переменных
- Присвоение новых значений переменным
- Статическая типизация в Go
- Отдельное объявление переменных
- Значения по умолчанию для переменных
- Строгая типизация в Go
- Объявление нескольких переменных на одной строке

### Константы
- Введение
- Константы в Go
- Константы и адаптация типа
- Группирование переменных и констант
- Подведение итогов по переменным в Go

### Функции
- Введение
- Подготовка к обсуждению функций в Go
- Создание и вызов функций
- Параметры и аргументы функций
- Несколько параметров в функциях
- Возврат значения из функции
- Использование результата одной функции в вызове другой функции
- Возврат нескольких значений из функции
- Имена для возвращаемых значений
- Именованные функциональные литералы
- Замыкания в функциях
- Подведение итогов по функциям в Go

### Указатели
- Введение
- Использование указателей для получения адресов в памяти
- Изменение значений в памяти с помощью указателей
- Функции без использования указателей
- Функции с использованием указателей
- Подведение итогов по указателям в Go

### Массивы и slices
- Введение
- Создание массивов
- Присвоение массива и функция len
- Создание slice из массива
- Связь между массивом и slice
- Варианты создания slice
- Добавление элементов в slice и функция cap
- Превышение максимально допустимого размера в slice
- Удаление элементов из slice
- Перебор элементов с помощью цикла for
- Подведение итогов по массивам и slice

### Условные инструкции if и switch
- Введение
- Условная инструкция if
- Условная инструкция if else
- Условная инструкция if else if
- Вложенные if и объединение условий
- Использование инициализаторов в if
- Инструкция switch

### Циклы for и for range
- Введение
- Цикл for со счетчиком
- Цикл for с условием
- Бесконечный цикл с break и continue
- Цикл for range
- Использование break и continue в цикле for range

## Requirements

- Базовые знания работы с компьютером, установки программ и навигации по файловой системе
- Желание изучать современный язык программирования и применять его на практике с примерами
- Отсутствие необходимости в предыдущем опыте программирования - всё объясняется с нуля

## Description

Язык программирования Go (или Golang), разработанный Google, становится всё популярнее благодаря своей простоте, высокой производительности и встроенной поддержке параллельного выполнения. Этот курс предназначен для тех, кто хочет с нуля освоить Go и научиться создавать надёжные, масштабируемые и эффективные программы.

Курс начинается с установки Go и настройки среды разработки в Visual Studio Code. Вы научитесь работать с пакетами, писать простые программы, компилировать и форматировать код. Мы подробно изучим переменные, базовые типы, константы и функции, включая такие темы, как замыкания и именованные возвращаемые значения.

Затем вы познакомитесь с указателями, массивами, срезами, условными операторами и циклами. Переходя к более сложным темам, мы рассмотрим работу с map и struct, их особенности и отличия. Особое внимание уделяется интерфейсам и их реализации — важному аспекту, который делает Go мощным языком для разработки.

## Who this course is for:

- Для начинающих, которые хотят изучить язык Go с самого начала до уверенного уровня
- Для разработчиков других языков, желающих перейти на Go и понять его особенности
- Для тех, кто хочет изучать язык с поддержкой многопоточности и строгой типизацией
