👣 Собственная функция 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()

}




🟡А можно вообще сделать так:

func sleep(d time.Duration) {

<-time.After(d)

}


Ну вот, то, что нужно



@Golang_google