Go語言的Send statements是指把值送入channel的敘述。
例如下面將字串"hello"以<-
操作符送入channel string型別的變數c
。
c := make(chan string) // create channel string type c
c <- "hello" // send statements, send string "hello" to channel c
Channel可以接收值之前send會阻塞。
例如下面發送值到channel的動作會阻塞,因為channel <-c
接收值前被time.Sleep()
等待三秒。
package main
import (
"fmt"
"time"
)
func main() {
fmt.Println("start")
c := make(chan string) // create channel c
go func() { // create goroutine to send value to c
c <- "hello" // send "hello" to c
fmt.Println("send")
}()
time.Sleep(3 * time.Second) // wait 3 seconds
fmt.Println(<-c) // receive "hello" from c
fmt.Println("end")
}
印出結果為:
start
hello
send
end
沒有留言:
張貼留言