Golangで、bytes.Bufferの内容を一行ずつ配列に入れる処理を前にやってたので、ネタがないので備忘として残しておく。 こんな感じで書いてた。

package main

import (
  "bytes"
  "fmt"
  "text/tabwriter"
)

func main() {
  buffer := &bytes.Buffer{}
  w := new(tabwriter.Writer)

  w.Init(buffer, 0, 8, 0, '\t', 0)
  fmt.Fprintln(w, "a\tb\tc\td")
  fmt.Fprintln(w, "123\t12345\t1234567\t123456789")
  fmt.Fprintln(w, "ABCDEFG\tHIJKLM\t1234567\t123456789")
  fmt.Fprintln(w, "1\t2\t3\t4")
  w.Flush()
  fmt.Println(buffer)

  line, err := buffer.ReadString('\n')
  list := []string{}
  for err == nil {
    str := string(line)
    list = append(list, str)
    line, err = buffer.ReadString('\n')
  }

  fmt.Println(list[3])
}