Was ich versuche zu tun ist eine io.MultiWriter
, die in einen Stdout und in einen Byte-Puffer schreibt. Etwas wie folgt aus:Führt bytes.Buffer viele Reallocs durch?
package main
import "bytes"
import "fmt"
import "io"
import "os"
func main() {
var b bytes.Buffer
multi := io.MultiWriter(&b, os.Stdout)
fmt.Fprintf(multi, "each of these strings\n")
fmt.Fprintf(multi, "might be large\n")
fmt.Fprintf(multi, "and there are many of them\n")
fmt.Println(b.String())
}
Was ich frage mich, wenn ich mich in den Fuß drehe durch dies zu tun? Wird das Array für jede Einfügung neu zugewiesen? und wenn ja, gibt es vielleicht einen besseren Weg? Werde ich vorzeitig optimiert?
Nicht versuchen, snarky zu sein, aber Sie können immer auch die [Quelle] (https://golang.org/src/bytes/buffer.go?s=402:854#L7) lesen. – squiguy
Sie haben Recht, und Gos Quellcode ist tatsächlich * sehr * lesbar :) –