Parameter variadik dalam bahasa Go membolehkan fungsi menerima bilangan parameter yang berubah-ubah untuk mengendalikan sebarang bilangan input. Ia juga boleh digunakan untuk operasi serentak, seperti pelaksanaan serentak bagi satu set fungsi, masing-masing menerima nombor pembolehubah hujah integer. Penggunaan variadic serentak boleh dicapai dengan menggunakan WaitGroup untuk menunggu semua goroutine selesai.
Penggunaan serentak parameter variadik dalam bahasa Go
Dalam bahasa Go, parameter variadic ialah parameter fungsi khas yang membenarkan fungsi menerima bilangan parameter yang berubah-ubah. Biasanya, argumen variadic digunakan apabila fungsi perlu mengendalikan bilangan input yang sewenang-wenangnya.
...
sintaks digunakan untuk mengisytiharkan parameter pembolehubah. Sebagai contoh, fungsi berikut menerima parameter rentetan tetap dan sebarang bilangan parameter integer: ...
语法用于声明可变参数。例如,以下函数接受一个固定的字符串参数和任意数量的整数参数:
func concat(s string, nums ...int) string { var result string result += s for _, n := range nums { result += strconv.Itoa(n) } return result }
并发使用可变参数
可变参数也可以用于并发操作中。例如,以下函数并发地执行一组函数,其中每个函数都接收一个可变数量的整数参数:
func parallel(tasks ...func(...int)) { var wg sync.WaitGroup for _, task := range tasks { wg.Add(1) go func() { defer wg.Done() task() }() } wg.Wait() }
在这个例子中,wg
(sync.WaitGroup
)用于等待所有 goroutine 完成。
实战案例
以下是一个使用可变参数进行并发操作的实战案例:
func main() { // 定义一个将整数相加的函数 sum := func(nums ...int) int { var total int for _, n := range nums { total += n } return total } // 定义一组并发任务 tasks := []func(...int){ func(nums ...int) { fmt.Println("Task 1:", sum(nums...)) }, func(nums ...int) { fmt.Println("Task 2:", sum(nums...)) }, func(nums ...int) { fmt.Println("Task 3:", sum(nums...)) }, } // 并发执行任务 parallel(tasks...) }
在这个例子中,parallel
rrreee
wg
(sync.WaitGroup
code>) digunakan untuk menunggu semua goroutine selesai. 🎜🎜🎜Kes praktikal🎜🎜🎜Berikut ialah kes praktikal menggunakan parameter pembolehubah untuk operasi serentak: 🎜rrreee🎜Dalam contoh ini, fungsi Atas ialah kandungan terperinci Bolehkah parameter variadic golang digunakan untuk operasi serentak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!