雖然有點早,但是我們來講一下 Go 很酷的特色 Goroutine ,他類似於其他語言的 Thread。
###Goroutines
要使用 Goroutine 非常的簡單,只要一個字,一個很熟悉的字,「go」。
讓我們看看下面這個簡單的例子,
package main
import "fmt"
func f(n int) {
for i := 0; i < 10; i++ {
fmt.Println(n, ":", i)
}
}
func main() {
go f(0)
}
你執行後你會發現什麼東西都沒有印出!
不是 Go 有問題,因為使用 goroutine 是平行處理的,所以在還沒開始印 n 之前,main 這個主要的函式已經結束了。
我們使用一下內建的 time 函式,讓 main 韓式等一下,讓 goroutine 跑完。
package main
import (
"fmt"
"time"
)
func f(n int) {
for i := 0; i < 10; i++ {
fmt.Println(n, ":", i)
}
}
func main() {
go f(0)
time.Sleep(time.Second \* 1) // 暫停一秒鐘
}
你就可以看到印出 1 ~ 10 了。