一個小玩意,下面的程序會進行火箭發射似的倒計時。time.Tick函數返回一個channel,程序會周期性地像一個節拍器一樣向這個channel發送事件。每一個事件的值是一個時間戳,不過更有意思的是其傳遞方式。
package main
import (
"fmt"
"time"
)
func main() {
fmt.Println("Commencing countdown.")
tick := time.Tick(1 * time.Second)
for countdown := 10; countdown > 0; countdown-- {
fmt.Printf("\r%2d", countdown)
<-tick
}
fmt.Println("\rlaunch!")
}