У меня есть этот блок кода, который должен ждать 10 секунд, прежде чем программа закроется, но он работает только в том случае, если я добавлю что-нибудь для печати после него.Это почему?Я хочу, чтобы он подождал 10 секунд без необходимости раскомментировать этот оператор печати.
func main() {
forever := make(chan bool)
go func() {
fmt.Println("why")
time.Sleep(10*time.Second)
//fmt.Println("here")
forever <- false
}()
fmt.Println("forever")
<- forever
}
Это также работает:
func main() {
forever := make(chan bool)
go func() {
fmt.Println("why")
time.Sleep(10*time.Second)
forever <- false
}()
fmt.Println(<- forever)
}
Следующая программа не ждет 10 секунд при запуске на игровой площадке Go:
package main
import (
"time"
)
func main() {
forever := make(chan bool)
go func() {
time.Sleep(10 * time.Second)
forever <- false
}()
<-forever
}