Sobes.tech
Senior

Yra funkcija `unpredictableFunc()`, kuri turi būti apgaubta taip, kad ji veiktų su laiko limitu (pavyzdžiui, 1 sekundė) ir būtų registruojamas jos vykdymo laikas. // Yra funkcija, kuri veikia neribotą laiką ir grąžina skaičių. // Jos turinys negali būti keičiamas (įsivaizduokite, kad viduje yra tinklo užklausa). func unpredictableFunc() int64 { rnd := rand.Int63n(5000) time.Sleep(time.Duration(rnd) * time.Millisecond) return rnd } // Reikia pakeisti apgaubiančią funkciją, kuri veiks su nustatytu laiko limitu (pavyzdžiui, 1 sekundė). // Jei "ilga" funkcija baigiasi per šį laiką, tai puiku, grąžiname rezultatą. // Jei ne, grąžiname klaidą. Šiuo atveju mūsų nesirūpina darbo rezultatas. // // Be to, reikia išmatuoti, kiek laiko ši funkcija veikė (paprastai išveskite į logą). // Apgaubiančios funkcijos parašas gali būti keičiamas. func predictableFunc() int64 { return unpredictableFunc() }