Da Go Kanäle hat, habe ich mich gefragt, warum die Standard-Bibliothek nicht entworfen worden ist, um sie auch für IO zu verwenden.IO-Kanäle vs Leser/Schreiber
Dafür gibt es Lese- und Schreibtypen, aber was wäre das Problem bei der Verwendung von Kanälen?
Eine Funktion könnte einen Kanal von Byte-Slices zurückgeben (unter der Annahme, dass Einzelbyte- oder sogar Einzelbit-Returns zu ineffizient sind) und einen Kanal für Löschungsanforderungen und einen Kanal für Fehlerberichte aufnehmen.
-Der neugierige Go Novize.
Also ich denke, Ihr Punkt ist zweifach: 1) Kanäle werden in diesem Fall ein Leistungsengpass sein, und 2) Kanäle würden die IO verstecken und die Designer mögen das nicht. Es wäre interessant, Leistungsmessungen von Leser/Schreiber und Kanälen durchzuführen, um zu verstehen, was die tatsächliche Leistungseinbuße sein wird - wobei natürlich realisiert wird, dass der/die Kompilierer für einfache Fälle optimieren können und Optimierungen mit der Zeit komplexer werden. Rob Pike hat über Leistungsoptimierungsmöglichkeiten für Kanäle gesprochen. –