Ответ 1
Нет, это самый идиоматический способ буферизации записи в Stdout. Во многих случаях вы также захотите добавить отложить:
f := bufio.NewWriter(os.Stdout)
defer f.Flush()
f.Write(b)
Это обеспечит сброс буфера при возврате из функции.
os.Stdout.Write() - это небуферизованная запись. Чтобы получить буферную запись, можно использовать:
f := bufio.NewWriter(os.Stdout)
f.Write(b)
Есть ли более идиоматический способ получения буферизованного вывода?
Нет, это самый идиоматический способ буферизации записи в Stdout. Во многих случаях вы также захотите добавить отложить:
f := bufio.NewWriter(os.Stdout)
defer f.Flush()
f.Write(b)
Это обеспечит сброс буфера при возврате из функции.