Андрея обнови решението на 10.11.2015 11:02 (преди над 2 години)
+package main
+
+import "fmt"
+
+func OrderedLogDrainer(logs chan (chan string)) chan string {
+ combined := make(chan string, cap(logs)*100)
+
+ go func(combined chan string, logs chan (chan string)) {
+ i := 0
+ for logChan := range logs {
+ i++
+ extractFromLog(&i, &logChan, &combined)
+ }
+ close(combined)
+ }(combined, logs)
+
+ return combined
+}
+
+func extractFromLog(i *int, log, result *chan string) {
+ for val := range *log {
+ *result <- fmt.Sprintf("%v\t%v", *i, val)
+ }
+}
Прочети по-внимателно какво искаме в условието, не отговаряш на доста от правилата.
Аз го прочетох, проблемът е, че не знам как да го имплементирам. Така става като се правят нещата в последния момент. :D