Пакетное изменение категории у новостей
Обновляйте ограниченную выборку строк, у которых category_id ещё не равен 1. OFFSET здесь не нужен: после изменения набор кандидатов сокращается, и смещение может пропускать записи.
Читать ответПодготовка к интервью
3221 вопрос в категории «Лайвкодинг»
Что проверяют на интервью
В этой подборке вопросы сгруппированы по формату «Лайвкодинг», чтобы подготовку можно было вести от базовых тем к практическим задачам. В подборке чаще встречаются темы: frontend, browser, database.
Каталог
Обновляйте ограниченную выборку строк, у которых category_id ещё не равен 1. OFFSET здесь не нужен: после изменения набор кандидатов сокращается, и смещение может пропускать записи.
Читать ответДля обычной ошибки достаточно стандартного errors.New. Если нельзя использовать даже стандартные пакеты, объявите строковый тип с методом Error() string.
Читать ответРезультат сравнения — false. NewRepo1 возвращает интерфейс с динамическим типом *InMemoryRepo и nil-значением, а NewRepo2 — действительно nil-интерфейс.
Читать ответПул должен владеть фиксированными работниками и очередью заданий. В main нужно дождаться его завершения после окончания генератора, иначе процесс выйдет с незавершёнными запросами.
Читать ответОпределите семантику жизненного цикла: ниже Start запускает пул один раз, Stop отменяет работу и ждёт работников. Задания поступают по внешнему каналу и обязаны поддерживать context.
Читать ответГарантированного полного вывода нет: main не ждёт запущенные горутины. Успевшие вызовы могут напечатать разные значения 0–4999 в произвольном порядке.
Читать ответИспользуйте range по каналу: он прочитает накопленные 1–5 и завершится после опустошения закрытого канала. Исходный бесконечный цикл затем печатает нули, а не вызывает panic.
Читать ответПрограмма не компилируется из-за wg.Wait без скобок. После замены на wg.Wait() остаются конкурентные записи в map: WaitGroup не защищает сам контейнер.
Читать ответПо горутине-чтению на каждый вход и WaitGroup достаточно, чтобы собрать строки и закрыть выход после всех источников. Тогда range в main завершится и напечатает ok.
Читать ответПроверяйте правила по приоритету: сначала позиция 15, затем кратность 5 и 3, затем обычная английская буква. Для русского алфавита используйте []rune, а не байтовые индексы.
Читать ответКод уже ограничивает одновременное выполнение участка после отправки в sem пятью вызовами. Буфер канала заполнится, и остальные printNumber будут ждать освобождения места.
Читать ответПервый заказ успешно выведет ID 1. Второй возвращает интерфейс с nil-указателем внутри, поэтому проверка order2!=nil проходит, а GetID вызывает panic при разыменовании.
Читать ответ