28 lines
495 B
Go
28 lines
495 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"time"
|
|
)
|
|
|
|
func main() {
|
|
start := time.Now()
|
|
tick := time.Tick(100 * time.Millisecond)
|
|
boom := time.After(500 * time.Millisecond)
|
|
elapsed := func() time.Duration {
|
|
return time.Since(start).Round(time.Millisecond)
|
|
}
|
|
for {
|
|
select {
|
|
case <- tick:
|
|
fmt.Printf("[%6s] tick.\n", elapsed())
|
|
case <- boom:
|
|
fmt.Printf("[%6s] BOOM!\n", elapsed())
|
|
return
|
|
default:
|
|
fmt.Printf("[%6s] .\n", elapsed())
|
|
time.Sleep(50 * time.Millisecond)
|
|
}
|
|
}
|
|
}
|