Собственная функция sleep
Всем привет Стоит задача "Написать свою фукнцию sleep Мне первое в голову пришло использоваться time.After, но я смотрю и мне кажется что я не прав и решение не то, так как выглядит слишком уж просто
package main
import (
"log"
"time"
)
func sleep(d time.Duration) {
select {
case <-time.After(d):
}
}
func CallSleep() {
log.Println("Do something")
sleep(5 * time.Second)
log.Println("Something else")
}
Или такая функция
func sleep2(d time.Duration) time.Time {
ticker := time.Tick(d)
for done := range ticker {
return done
}
return time.Now()
}
Ответы (1 шт):
Автор решения: Nikolay Tuzov
→ Ссылка
мне кажется что я не прав и решение не то, так как выглядит слишком уж просто
Это как раз хорошо - чем больше опыта у разработчика, тем проще выглядят его решения. К этому и стоит стремиться. И уж точно не стоит усложнять свои решения намеренно.
Мне нравится первый вариант решения. Но, как верно заметили в комментариях, можно ещё проще:
func sleep(d time.Duration) {
<-time.After(d)
}