// Что выведет следующая программа и сколько она будет выполняться по времени??

Программа выполнит 10000 итераций, в каждой из которых вызывается функция networkRequest(), которая делает паузу на 1 миллисекунду (эмуляция сетевого запроса) и увеличивает глобальную переменную count на 1.

Короткий ответ

Что ответить на собеседовании

Программа выполнит 10000 итераций, в каждой из которых вызывается функция networkRequest(), которая делает паузу на 1 миллисекунду (эмуляция сетевого запроса) и увеличивает глобальную переменную count на 1.

Подробный разбор

Ответ с пояснениями

Условие

// Что выведет следующая программа и сколько она будет выполняться по времени??

package main

import ( "fmt" "time" )

const numRequests = 10_000

var count int

func networkRequest() { time.Sleep(time.Millisecond) // Эмуляция сетевого запроса.

count++

}

func main() { for i := 0; i < numRequests; i++ { networkRequest() }

fmt.Println(count) // 10_000

}

Ответ

Программа выполнит 10_000 итераций, в каждой из которых вызывается функция networkRequest(), которая делает паузу на 1 миллисекунду (эмуляция сетевого запроса) и увеличивает глобальную переменную count на 1.

Вывод программы будет:

10000

По времени выполнение примерно составит 10_000 миллисекунд, то есть около 10 секунд, так как вызовы networkRequest() идут последовательно, и каждый задерживается на 1 мс.

Если бы запросы выполнялись параллельно (например, с использованием горутин), время могло бы значительно сократиться.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее