गो

2013-09-30 6 views
5

में चैनल के अंत तक पढ़ें निर्माता कुछ मूल्यों के साथ चैनल को भरता है और इसे बंद कर देता है। उपभोक्ता पक्ष पर मैं सभी मूल्यों को जोड़ना चाहता हूं और अंत में लूप को छोड़ना चाहता हूं। मेरे समाधान लगता है:गो

total := 0 
for { 
    v, ok := <- ch 
    if !ok { break } 
    total += v 
} 

वहाँ किसी भी अधिक सुरुचिपूर्ण रास्ता नहीं है?

उत्तर

9

ए/रेंज लूप काम करेगा, जब तक निर्माता चैनल बंद कर देता है।

total := 0 

for v := range ch { 
    total += v 
} 

खेल: http://play.golang.org/p/cWcA57dnLC