Основы синтаксиса Строки и руны Массивы и слайсы Map Структуры и методы Интерфейсы Горутины и конкурентность Каналы defer, panic, recover Обработка ошибок Указатели Пакет sync Тестирование Пакеты и модули Стандартная библиотека Context Generics iota и перечисления Разное / продвинутое

Стандартная библиотека

7 вопросов

Богатая стандартная библиотека Go: net/http для веб-серверов, encoding/json для JSON, fmt для форматирования, io для потоков, time для работы с временем.

1 Какой пакет используется для HTTP-сервера? 🟢 Лёгкий
Ответ: B) net/http

net/http - мощный пакет для HTTP-клиента и сервера. http.ListenAndServe(":8080", handler) запускает сервер. Многие Go-фреймворки (gin, chi, echo) построены поверх net/http.

Подробнее →
2 Какой пакет используется для работы с JSON? 🟢 Лёгкий
Ответ: B) encoding/json

encoding/json - пакет для сериализации (Marshal) и десериализации (Unmarshal) JSON. Работает через рефлексию и теги структур (json:"name").

Подробнее →
3 Что делает json.Marshal(v)? 🟢 Лёгкий
Ответ: B) Сериализует значение в JSON ([]byte)

json.Marshal принимает любое значение и возвращает ([]byte, error) - JSON-представление. Экспортированные поля структур попадают в JSON, приватные - нет.

Подробнее →
4 Какой пакет используется для форматированного вывода? 🟢 Лёгкий
Ответ: B) fmt

fmt - форматированный ввод/вывод. Println, Printf, Sprintf, Fprintf. Поддерживает глаголы: %v (значение), %T (тип), %d (число), %s (строка).

Подробнее →
5 Что делает io.Copy(dst, src)? 🟡 Средний
Ответ: B) Копирует данные из Reader в Writer

io.Copy читает из io.Reader и пишет в io.Writer, пока не встретит io.EOF или ошибку. Работает с любыми потоками: файлы, сеть, буферы.

Подробнее →
6 Какой пакет для работы с временем? 🟢 Лёгкий
Ответ: B) time

Пакет time предоставляет Time, Duration, Timer, Ticker. time.Now(), time.Since(), time.Sleep(). Формат даты: t.Format("2006-01-02") - Go использует эталонную дату.

Подробнее →
7 Как задать таймаут для HTTP-клиента? 🟡 Средний
Ответ: D) Оба B и C подходят

http.Client{Timeout: 5*time.Second} - таймаут на весь запрос. context.WithTimeout - более гибкий, можно задать для отдельных запросов. На практике используют оба подхода.

Подробнее →