Sobes.tech
Senior

`unpredictableFunc()` funksiyasını bükmək lazımdır ki, o, vaxt limiti ilə (məsələn, 1 saniyə) işləsin və icra vaxtını qeyd etsin. // Sonsuz işləyən və ədəd qaytaran funksiya var. // Onun gövdəsini dəyişdirmək olmaz (daxildə şəbəkə sorğusu olduğunu fərz edək). func unpredictableFunc() int64 { rnd := rand.Int63n(5000) time.Sleep(time.Duration(rnd) * time.Millisecond) return rnd } // Bu funksiyanı əhatə edən funksiyanı dəyişdirmək lazımdır, o, müəyyən edilmiş vaxt limiti ilə işləyəcək (məsələn, 1 saniyə). // Əgər "uzun" funksiya bu vaxt ərzində işləyibsə, çox yaxşı, nəticəni qaytarırıq. // Əks halda, səhv qaytarırıq. Bu halda işləmə nəticəsi bizim üçün vacib deyil. // // Əlavə olaraq, bu funksiyanın nə qədər işlədiyini ölçmək lazımdır (sadəcə logda göstərin). // Əhatə edən funksiyanın imzasını dəyişmək olar. func predictableFunc() int64 { return unpredictableFunc() }