Задачи курса «Golang с нуля»
Выберите задачу и проверьте решение прямо на странице. Регистрация не нужна.
- Go fmt.Sprintf: форматирование строки и числа с двумя знаками
Считайте название, количество и цену, затем соберите карточку товара через fmt.Sprintf с ценой до двух знаков.
- Go if и switch: несколько значений в одной ветке
Проверьте количество билетов через if и распределите направления по зонам с несколькими значениями в ветке switch.
- Go strings.Split и strconv.ParseFloat: сумма чисел в строке
Разберите строку чисел через запятую, уберите пробелы и верните первое поле с ошибкой либо сумму с двумя знаками.
- Go pointer receiver и встраивание struct: изменяемый счётчик
Допишите методы счётчика с pointer receiver, встроите его в Round и проверьте вызов методов через внешний тип.
- Go: композиция интерфейсов ReaderNotifier и обработка ошибки
Объедините чтение показаний и отправку предупреждений в составном интерфейсе; остановитесь на первой ошибке.
- Go encoding/json: фильтрация потока JSON по полю alert
Читайте JSON-объекты до конца потока, выводите только тревожные события и пропускайте нулевое value в результате.
- go mod init: создание модуля Go, форматирование и сборка
Что создаёт go mod init, зачем нужны gofmt и go build? Минимальный пример Go и задача с проверкой исправленного исходника.
- Go: преобразование float64 в int без округления
Рассчитайте расход топлива в Go и явно преобразуйте результат из float64 в int, отбросив дробную часть.
- Go if else и оператор ||: несколько кодов для одного результата
Объедините равнозначные коды оператором || в цепочке if/else if и обработайте неизвестный код.
- Go for и continue: пропуск чётных чисел в цикле
Пройдите номера кругов циклом for, пропустите чётные через continue и подсчитайте нечётные.
- Go: функция с двумя возвращаемыми значениями float64 и bool
Напишите функцию перевода температур в Кельвины, которая возвращает число и признак успеха для известных шкал.
- Go errors.Is и fmt.Errorf с %w: оборачивание ошибок
Проверьте диапазон глубины, оберните сигнальную ошибку с контекстом и сохраните её распознавание через errors.Is.
- defer в Go: порядок вызовов, аргументы и ранний return
Когда выполняется defer и почему вызовы идут в обратном порядке? Короткий пример Go и задача на завершение этапов.
- Go: обход массива [7]int и возврат среза []int
Найдите минимум, максимум и целое среднее в массиве из семи чисел, верните результаты срезом в заданном порядке.
- Go append и базовый массив: почему меняется исходный срез
Возьмите подсрез и добавьте элемент через append; проследите, как общая ёмкость меняет исходный срез.
- Как проверить наличие ключа в map Go: value, ok и delete
Почему нулевое значение не доказывает отсутствие ключа Go map? Пример value, ok, удаление через delete и задача с проверкой.
- Go []rune: разворот строки UTF-8 без порчи кириллицы
Разверните строку по рунам, а не по байтам, и проверьте точное совпадение с исходной строкой.
- Go strings: проверка имени файла и расширения перед загрузкой
Проверьте пробелы, двойную точку и допустимое расширение файла с помощью функций пакета strings.
- Go type assertion с ok: дополнительный интерфейс для объекта
Обработайте объекты через общий интерфейс и безопасно проверьте дополнительный метод через type assertion с ok.
- Go: подмена зависимостей интерфейсами и fake-уведомитель
Передайте SMS и push через узкие интерфейсы, запишите вызовы в fake-реализации и верните первую ошибку.
