Sobes.tech
Senior

არსებობს ფუნქცია `unpredictableFunc()`, რომელსაც უნდა შევკრათ ისე, რომ ის შესრულდეს დროის შეზღუდვით (მაგალითად, 1 წამი) და ჩაიწეროს შესრულების დრო. // არსებობს ფუნქცია, რომელიც უსასრულოდ მუშაობს და აბრუნებს რიცხვს. // მისი სხეული არ შეიძლება შეიცვალოს (წარმოიდგინეთ, რომ შიგნით არის ქსელური მოთხოვნა). func unpredictableFunc() int64 { rnd := rand.Int63n(5000) time.Sleep(time.Duration(rnd) * time.Millisecond) return rnd } // საჭიროა შეცვალოთ შემკრავი ფუნქცია, რომელიც იმუშავებს მითითებულ დროის შეზღუდვით (მაგალითად, 1 წამი). // თუ "გრძელი" ფუნქცია ამ დროს დასრულდა, მშვენიერია, ვუბრუნებთ შედეგს. // თუ არა, ვუბრუნებთ შეცდომას. ამ შემთხვევაშიც, შედეგი არ არის მნიშვნელოვანი. // // ასევე, საჭიროა ზომა რამდენი დრო დასჭირდა ამ ფუნქციის შესრულებას (სრულიად შესაძლებელია, უბრალოდ გამოიტანეთ ლოგში). // შემკრავი ფუნქციის სიგნატურა შეიძლება შეიცვალოს. func predictableFunc() int64 { return unpredictableFunc() }