Go: 100 уровней кода
Большой курс набора кода на Go: 100 уровней от Hello World до горутин, каналов, дженериков и юнит-тестов. Реальные компилируемые сниппеты с подсветкой синтаксиса, автоотступами и поддержкой Enter/Tab.
100 уровней · 300 ₽ · разовая покупка или Premium-подписка
Программа курса
- Hello, World — Первая программа: пакет, импорт и точка входа
- Комментарии — Однострочные и блочные комментарии
- Переменные: var — Явное объявление переменных с типом
- Короткое объявление := — Вывод типа компилятором
- Константы и iota — const и автоинкремент iota
- Базовые типы — int, float64, string, bool, byte, rune
- Преобразование типов — Явные конверсии между числовыми типами
- Арифметика — Операторы, целочисленное деление и остаток
- Строки — Конкатенация и длина строки
- Форматированный вывод — fmt.Printf и вербы %s, %d, %.2f, %t, %v
- Условие if / else — Ветвление без скобок вокруг условия
- if с инициализацией — Объявление переменной прямо в условии
- Оператор switch — Выбор ветки по значению
- switch без условия — Замена цепочки if/else
- Классический for — Единственный цикл в Go
- for как while — Цикл только с условием
- for range — Итерация по срезу с индексом и значением
- break и continue — Управление итерациями цикла
- Вложенные циклы и метки — break с меткой выходит из внешнего цикла
- FizzBuzz — Классическая задача на условия и цикл
- Функции — Параметры и возвращаемое значение
- Несколько возвращаемых значений — Функция возвращает результат и признак успеха
- Именованные результаты — Возвращаемые значения с именами и голый return
- Variadic-функции — Произвольное число аргументов
- Функция как значение — Функции — граждане первого класса
- Анонимные функции — Объявление и немедленный вызов
- Замыкания — Функция-счётчик, захватывающая переменную
- Оператор defer — Отложенное выполнение при выходе из функции
- defer: порядок LIFO — Несколько defer выполняются в обратном порядке
- Рекурсия: факториал — Функция вызывает саму себя
- Рекурсия: Фибоначчи — Классическая последовательность
- Массивы — Фиксированная длина — часть типа
- Срезы: make и append — Динамический список поверх массива
- Срезы срезов — Выборка диапазона s[low:high]
- Функция copy — Независимая копия среза
- Двумерные срезы — Срез срезов как таблица
- Map: создание и запись — Ассоциативный массив ключ → значение
- Map: проверка наличия — Идиома comma ok
- Map: удаление — delete и повторная проверка
- Итерация по map — range по ключам и значениям
- Байты и руны — UTF-8: длина строки в байтах и в символах
- Пакет strings — Contains, ToUpper, Split, Join
- Пакет strconv — Строки в числа и обратно
- strings.Builder — Эффективная сборка строки в цикле
- Сортировка — sort.Slice с функцией сравнения
- Линейный поиск — Найти индекс элемента в срезе
- Реверс среза — Обмен элементов с двух концов
- Фильтрация среза — Отобрать элементы по условию
- Сумма и максимум — Агрегация значений среза
- Уникальные элементы — Дедупликация через map
…и ещё 50 уровней в тренажёре.