Penjana Gaya Python dalam Go
Dalam Go, goroutine boleh digunakan seperti penjana Python, seperti yang ditunjukkan dalam Soalan 66 Tour of Pergi. Kod yang disediakan menulis semula Soalan 66 dengan cara yang dipermudahkan:
package main import "fmt" func fibonacci(c chan int) { x, y := 1, 1 for { c <- x x, y = y, x + y } } func main() { c := make(chan int) go fibonacci(c) for i := 0; i < 10; i++ { fmt.Println(<-c) } }
Analisis
Pendekatan Alternatif
Untuk menangani isu ini, pertimbangkan kod berikut:
package main import "fmt" func fib(n int) chan int { c := make(chan int) go func() { x, y := 0, 1 for i := 0; i <= n; i++ { c <- x x, y = y, x+y } close(c) }() return c } func main() { for i := range fib(10) { fmt.Println(i) } }
Dalam ini contoh:
Atas ialah kandungan terperinci Bolehkah Go Channels Meniru Penjana Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!