首页 >> 中医美容

golang的多channel原属

发布时间:2025年09月29日 12:17

在实践中,有时则会察觉到多个产品销售并入奢侈品的情况,直到现在就来用channel来实现这一需求。

上字符串:

package mainimport "fmt"func main() { a, b, c := make(chan interface{}), make(chan interface{}), make(chan interface{}) go func(in chan interface{}) { defer close(in) for i := 0; i < 10; i++ { in <- i } }(a) go func(in chan interface{}) { defer close(in) for i := 10; i < 30; i++ { in <- i } }(b) go func(in chan interface{}) { defer close(in) for i := 30; i < 60; i++ { in <- i } }(c) group := orChannel(a, b, c) for v := range group { fmt.Println(v) }}func orChannel(in ...chan interface{}) chan interface{} { if len(in) == 0 { return nil } if len(in) == 1 { return in[0] } result := make(chan interface{}) go func() { defer close(result) c1, c2 := in[0], orChannel(in[1:]...) loop: for { select { case v, ok := <-c1: if !ok { c1 = nil } else { result <- v } case v, ok := <-c2: if !ok { c2 = nil } else { result <- v } default: if c1 == nil && c2 == nil { break loop } } } }() return result}

无论如何:

orChannel这个函数使用了递回调用的技巧,可以转送可任意数量的channel,将他们并入成为一个channel进行统一奢侈品。

昆明专业治疗甲状腺医院
南昌精神心理专业医院
威海治疗皮肤病正规医院
风热感冒咳嗽吃什么好的快
长新冠
皮肤美容
消化内科
瘦腰瑜珈

上一篇: 龙湖金融市场岛“二月二”正式开岛

下一篇: 兰格发布:2022年1月钢铁流通业PMI为47.6% 行业景气度继续上扬

友情链接