[Go] ใช้ bytes.Buffer เป็น io.Writer เพื่อเก็บ output ใน memory ก่อนแปลงเป็น string หรือ []byte
มีฟังก์ชันการทำงานหลายตัวที่รับค่าเป็น interface io.Writer
เพื่อเขียน output ออกไป ซึ่งช่วยให้คนใช้งานเลือกได้ว่าจะเขียน output การทำงานออกไปทางไหนก็ได้ตามต้องการขอแค่การทำงานนั้นถูก implements ด้วย interface io.Writter
ที่มี method Write([]byte) (int, error)
อยู่ และ bytes.Buffer
ก็เป็นหนึ่งใน io.Writer
ที่ช่วยให้เราเอาผลลัพธ์การทำงานมาเก็บไว้ใน memory ก่อนแล้วค่อยเอาค่าไปใช้ต่อได้เช่นแปลงเป็น string
แปลงเป็น []byte
หรือแม้แต่ส่งไปให้ฟังก์ชันที่ต้องการ io.Reader
เพราะ bytes.Buffer
ก็ implement interface io.Reader
ไว้เช่นกัน