Обнаружьте проблему в Go‑программе
Программа не компилируется: chan int нельзя передать параметру chan any. После простого исправления типа она всё равно зависнет, потому что функция ch ничего не читает.
Читать ответПодготовка к интервью
3221 вопрос в категории «Лайвкодинг»
Что проверяют на интервью
В этой подборке вопросы сгруппированы по формату «Лайвкодинг», чтобы подготовку можно было вести от базовых тем к практическим задачам. В подборке чаще встречаются темы: frontend, browser, database.
Каталог
Программа не компилируется: chan int нельзя передать параметру chan any. После простого исправления типа она всё равно зависнет, потому что функция ch ничего не читает.
Читать ответТочное значение не гарантировано: total++ — несинхронизированная операция чтения-изменения-записи, а Sleep не устанавливает ожидание завершения. Возможны потерянные увеличения и data race.
Читать ответВывод: true, false, false, false — по одному значению на строке. Только err1 является действительно nil-интерфейсом.
Читать ответДержите по одному текущему элементу каждого потока и отправляйте меньший. Обычный fan-in через select не подходит: он смешивает порядок источников без сравнения значений.
Читать ответВывод будет [1 2 3 4 5] [1 2 3 4 5 7] [1 2 3 4 5 7]. Все три слайса используют общий массив с ёмкостью 10.
Читать ответСначала скопируйте ключи, затем защищайте все записи одним mutex и дождитесь горутин до чтения map. Sleep не даёт гарантии отсутствия одновременного обхода или доступа.
Читать ответНет: recover в main не ловит panic другой горутины. При n=0 деление на ноль в printNumber останется необработанным и завершит процесс.
Читать ответФункция convert сама ничего не печатает: она создаёт слайс Bar, преобразуя каждый Foo по порядку. Конкретные значения и возможные побочные эффекты зависят от отсутствующей fooToBar.
Читать ответСоздайте numWorkers читателей канала и защищайте результирующую map. При отмене прекращайте брать новые URL, но уже начавшаяся функция из условия не остановится: она игнорирует context.
Читать ответПроверьте каждое число по множеству уже встреченных. Повтор немедленно даёт false; отсутствие повторов до конца — true.
Читать ответПрограмма напечатает 1. Метод set имеет value receiver и изменяет только копию flags, а не исходное значение.
Читать ответОберните map в структуру с mutex и защищайте все обращения. Для строк возвращаемое значение не требует глубокой копии, а bool отличает отсутствие ключа от пустой строки.
Читать ответ