Dalam Go, anda boleh menghantar fungsi sebagai parameter melalui saluran paip Langkah-langkahnya adalah seperti berikut: Tentukan Goroutine yang menerima fungsi tersebut. Dalam Goroutine bahagian panggilan, cipta paip dan hantar fungsi kepadanya.
Melalui parameter fungsi melalui paip dalam Go
In Go, paip ialah mekanisme konkurensi yang digunakan untuk komunikasi antara proses (IPC). Melalui paip, kami boleh menghantar data dari satu goroutine ke yang lain. Selain menghantar jenis data mudah, kami juga boleh menghantar fungsi sebagai parameter melalui saluran paip.
Penggunaan
Untuk menghantar fungsi sebagai parameter melalui paip, kami ikuti langkah berikut:
Sampel kod
package main import ( "fmt" "time" ) func main() { // 定义接收函数的 Goroutine go func() { for { // 从管道接收函数 fn := <-chanFunc // 执行函数 fn() } }() // 创建管道 chanFunc := make(chan func()) // 向管道发送函数 go func() { for { chanFunc <- func() { fmt.Println("Hello from function!") } time.Sleep(1 * time.Second) } }() // 保持主 Goroutine 运行 select {} }
Kes praktikal
Sampel kod ini menunjukkan cara menggunakan paip untuk menghantar fungsi sebagai parameter. Dalam kes khusus ini, kami menghantar sebagai hujah fungsi yang mencetak mesej melalui paip. Dengan melaksanakan kod ini, kita boleh melihat output berterusan: "Hello dari fungsi!".
Kelebihan
Melepasi fungsi sebagai hujah melalui paip memberikan kelebihan berikut:
Atas ialah kandungan terperinci Penjelasan terperinci tentang fungsi golang yang melepasi parameter melalui saluran paip. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!