learning_go/book_with_bridge/channels/launch!/main.go
2026-01-03 21:19:07 +03:00

36 lines
467 B
Go

package main
import (
"fmt"
"os"
"time"
)
func launch() {
fmt.Println("To abort launch press Enter")
for i:=10;i >=0; i-- {
fmt.Printf("%d...\n",i)
}
}
func main() {
abort := make(chan struct{})
go func() {
os.Stdin.Read(make([]byte,1))
abort <- struct{}{}
}()
tick := time.Tick(1*time.Second)
for i:=10; i>=0; i-- {
fmt.Printf("%d...\n",i)
select {
case <-tick:
case <- abort:
fmt.Println("Launch cancelled")
return
}
}
}