Перейти к содержимому

## Условие

go · basicsAvito / Авито (платформа)не решено
// Есть функция, работающая неопределенно долго и возвращающая число.
// Еe тело нельзя изменять (представим, что внутри сетевой запрос).
func unpredictableFunc() int64 {
rnd := rand.Int63n(5000)
time.Sleep(time.Duration(rnd) * time.Millisecond)
return rnd
}
// Нужно изменить функцию обертку, которая будет работать с заданным таймаутом (например, 1 секунду).
// Если "длинная "функция отработала за это время - отлично, возвращаем результат.
// Если нет - возвращаем ошибку. Результат работы в этом случае нам не важен.
//
// Дополнительно нужно измерить, сколько выполнялась эта функция (просто вывести в лог).
// Сигнатуру функцию обертки менять можно.
func predictableFunc() int64 {
return unpredictableFunc()
}
func main() {
fmt.Println(predictableFunc())
}

Источник: Avito / Авито (платформа)

← За какое время отработает программа? · Все задачи · Go · Необходимо проверить 2 строки, являются… →