## Условие
// Есть функция, работающая неопределенно долго и возвращающая число.// Е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 строки, являются… →