Goroutines 基本計劃

package main

import (
    "fmt"
    "time"
)

func say(s string) {
    for i := 0; i < 5; i++ {
        time.Sleep(100 * time.Millisecond)
        fmt.Println(s)
    }
}

func main() {
    go say("world")
    say("hello")
}

goroutine 是一個能夠與其他函式同時執行的函式。要建立一個 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)
  var input string
  fmt.Scanln(&input)
}

通常,函式呼叫執行函式體內的所有語句並返回到下一行。但是,使用 goroutines,我們會立即返回到下一行,因為它不會等待函式完成。因此,包括對 Scanln 功能的呼叫,否則程式已退出而不列印數字。