私がしようとしているのは、io.MultiWriter
がstdoutとバイトバッファに書き込むことです。このようなもの:bytes.Bufferは多くの再アロケーションを実行しますか?
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())
}
私はこれを行うことで私は自分自身を撮影しているのですか?これは、配列に挿入されるたびに配列を再割り当てしますか?もしそうなら、おそらくもっと良い方法がありますか?私は時期尚早に最適化していますか?
snarkyになろうとはしませんが、いつでも[source](https://golang.org/src/bytes/buffer.go?s=402:854#L7)を読むことができます。 – squiguy
あなたが正しいですし、Goのソースコードは実際には*非常に*可読です:) –