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() }